chisinhvnn
Thành viên tiêu biểu
- Tham gia
- 7/3/08
- Bài viết
- 479
- Được thích
- 104
Mình chưa hiểu.Bạn lập bảng danh sách gồm 2 cột & tra theo VLOOPKUP() là đơn giản, ai cũng làm được mà.
Nếu bạn có kiến thức VBA càng nhanh thành công hơn!
Mình chưa hiểu.Bạn lập bảng danh sách gồm 2 cột & tra theo VLOOPKUP() là đơn giản, ai cũng làm được mà.
Nếu bạn có kiến thức VBA càng nhanh thành công hơn!
để mình tìmTìm ở diễn đàn có bài chuyển có dấu về không dấu đó, kết hợp vào là đủ bộ.
Đã tìm ra và áp dụng "http://www.giaiphapexcel.com/dienda...có-dấu-sang-không-dấu-trong-tiếng-việt.91542/"Tìm ở diễn đàn có bài chuyển có dấu về không dấu đó, kết hợp vào là đủ bộ.
Cho mình hỏi mình muốn lấy ký tự đầu nhưng để tránh trường hợp trùng mình muốn ghép thêm ký tự cuối của chữ cuối thì làm thế nào:Xin được góp vui thêm 1 cách không dùng vòng lặp.
Mã:Function KTD(str As String) As String If InStr(1, str, " ") = 0 Then KTD = Left(str, 1) Else KTD = Left(str, 1) & KTD(Mid(str, InStr(1, str, " ") + 1)) End If End Function
Bạn muốn lấy thế nào, cho ví dụ và file cụ thểMình xin hỏi trường hợp gần giống như yêu cầu của bạn chủ topic nhưng chỉ lấy chữ cái đầu của Tên thôi thì dùng công thức thế nào cho những người họ tên không chỉ gồm 3 chữ như Mai Phương Thuý mà có thể gồm 4 chữ hay chỉ có 2 chữ ạ???
Dùng 1 trong những hàm kể từ bài #4, và thêm như vầy:Mình xin hỏi trường hợp gần giống như yêu cầu của bạn chủ topic nhưng chỉ lấy chữ cái đầu của Tên thôi thì dùng công thức thế nào cho những người họ tên không chỉ gồm 3 chữ như Mai Phương Thuý mà có thể gồm 4 chữ hay chỉ có 2 chữ ạ???
Bác ơi cho em hỏi tí ạ?Lại là "Đệ quy" ---> Hôm trước đã nghĩ ra sẽ làm theo hướng này nhưng vụ đệ quy này xem ra vẫn chưa thông lắm
Cảm ơn bạn!
Thử code này.Bác ơi cho em hỏi tí ạ?
Nếu muốn lấy từng chữ cái của họ và tên mình làm sao ạ?
Ví dụ: Nguyễn Hoàng Văn Tùng Minh
Viết code để lấy từng chữ cái của người có tên ở ví dụ trên ạ.
Em cảm ơn!
Public Function LayKyTuDau(str As String) As String
Dim i As Integer, s As String, sSplit
sSplit = Split(str, " ")
For i = 0 To UBound(sSplit)
s = s + Left(sSplit(i), 1)
Next i
LayKyTuDau = s
End Function
Bác này hơn một năm nay rồi chưa thấy vào diễn đàn bạn ạ.Bác ơi cho em hỏi tí ạ?
Nếu muốn lấy từng chữ cái của họ và tên mình làm sao ạ?
Ví dụ: Nguyễn Hoàng Văn Tùng Minh
Viết code để lấy từng chữ cái của người có tên ở ví dụ trên ạ.
Em cảm ơn!
Tôi đoán anh ấy đã dùng một tài khoản khác để vào diễn đàn.Bác này hơn một năm nay rồi chưa thấy vào diễn đàn bạn ạ.
Dạ anh, em cũng không biết nhưng tài khoản này cũng lâu rồi không thấy vào anh nhỉ.Tôi đoán anh ấy đã dùng một tài khoản khác để vào diễn đàn.
Dạ, em cảm ơn bác đoạn code. NHƯNG Ý CỦA EM LÀ MUỐN LẤY TỪNG CHỮ MỘT RA Ạ.Thử code này.
Mã:Public Function LayKyTuDau(str As String) As String Dim i As Integer, s As String, sSplit sSplit = Split(str, " ") For i = 0 To UBound(sSplit) s = s + Left(sSplit(i), 1) Next i LayKyTuDau = s End Function
Đây, có tuỳ chọn tách theo lý tự gì luôn nha.Dạ, em cảm ơn bác đoạn code. NHƯNG Ý CỦA EM LÀ MUỐN LẤY TỪNG CHỮ MỘT RA Ạ.
VÍ DỤ: NGUYỄN HOÀNG VĂN TÙNG MINH
SAU KHI TÁCH:
N G U Y Ễ N H O À N G V Ă N T U N G M I N H
Những chữ cái thể hiện trên từng ô cell ạ.
Function T_Tachchuoi(Str As String, Optional txt As String)
Application.Volatile
Dim i As Integer, z As Integer, x As Integer, a As Integer
Name = Application.WorksheetFunction.Trim(Application.WorksheetFunction.Substitute(Str, Chr(160), Chr(32)))
z = 0: a = 1: x = 1
For i = 1 To Len(Name)
If Mid(Name, i, Len(txt)) = txt Or i = Len(Name) Then z = z + 1
Next
ReDim Arr(0, 1 To z)
For i = 2 To Len(Name) + 1
If Mid(Name, i, Len(txt)) = txt Or i = Len(Name) Then
Arr(0, x) = Replace(Mid(Name, a, i - a + Len(txt)), txt, "")
a = i
x = x + 1
End If
Next
T_Tachchuoi = Arr
End Function
bác hướng dẫn giúp cách dùng ạĐây, có tuỳ chọn tách theo lý tự gì luôn nha.
Mã:Function T_Tachchuoi(Str As String, Optional txt As String) Application.Volatile Dim i As Integer, z As Integer, x As Integer, a As Integer Name = Application.WorksheetFunction.Trim(Application.WorksheetFunction.Substitute(Str, Chr(160), Chr(32))) z = 0: a = 1: x = 1 For i = 1 To Len(Name) If Mid(Name, i, Len(txt)) = txt Or i = Len(Name) Then z = z + 1 Next ReDim Arr(0, 1 To z) For i = 2 To Len(Name) + 1 If Mid(Name, i, Len(txt)) = txt Or i = Len(Name) Then Arr(0, x) = Replace(Mid(Name, a, i - a + Len(txt)), txt, "") a = i x = x + 1 End If Next T_Tachchuoi = Arr End Function
Dán vào module rồi sử dụng hàm nha bác, hàm là =T_Tachchuoi("Chuỗi cần tách", "tách tại ký tự gì, bỏ trống là tách từng ký tự")bác hướng dẫn giúp cách dùng ạ
cái mình cần muốn giúp là làm sao tên của người đó ta dùng hàm là được tách từng chữ cái ra từng ô cell 1Dán vào module rồi sử dụng hàm nha bác, hàm là =T_Tachchuoi("Chuỗi cần tách", "tách tại ký tự gì, bỏ trống là tách từng ký tự")
Cũng hàm của bác có thể chỉnh T_Tachchuoi(A1,1)cái mình cần muốn giúp là làm sao tên của người đó ta dùng hàm là được tách từng chữ cái ra từng ô cell 1
ví dụ: LÊ BÍCH TRÂM nằm ở ô cell là A1 đi
khi dùng hàm tách các ký tự tại ô A1 ta có B1: "L", C1: "Ê", D1: " ",E1: "B", F1: "I"; và .... tới ô cuối cùng là "M"
bác ơi cho mình hỏi thăm tí ạ!Po_pikachu đã dùng split rồi thì mình dùng thêm cái For nữa cho dễ hình dung :
PHP:Function Firstchar(Str As String) As String Dim i As Byte Str = Trim(Str): Firstchar = Left(Str, 1) For i = 1 To Len(Str) If Mid(Str, i, 1) = " " Then Firstchar = Firstchar + Mid(Str, i + 1, 1) Next End Function