Tạo tên viết tắt

Liên hệ QC

constructxda

Thành viên mới
Tham gia
10/2/09
Bài viết
22
Được thích
4
Các bác cho em hỏi có cách nào tách các ký tự đầu trong chuỗi văn bản ra để viết tắt không ạ: ví như chuỗi "giúp em với" thành "GEV". Bác nào biết giúp em với ạ, em cảm ơn nhiều!
 
Các bác cho em hỏi có cách nào tách các ký tự đầu trong chuỗi văn bản ra để viết tắt không ạ: ví như chuỗi "giúp em với" thành "GEV". Bác nào biết giúp em với ạ, em cảm ơn nhiều!
Bạn thử:
PHP:
Function Split_abc(St As String) As String
Dim i
St = Trim(St)
Split_abc = Left(St, 1)
For i = 1 To Len(St)
    If Mid(St, i, 1) = " " Then Split_abc = UCase(Split_abc + Mid(St, i + 1, 1))
Next
End Function
 
Các bác cho em hỏi có cách nào tách các ký tự đầu trong chuỗi văn bản ra để viết tắt không ạ: ví như chuỗi "giúp em với" thành "GEV". Bác nào biết giúp em với ạ, em cảm ơn nhiều!
Lấy ký tự đầu của từng từ nhưng có bỏ dấu tiếng Việt không? Ví du:
Âu Thị Ngọc Ánh -----> ÂTNÁ
hay
Âu Thị Ngọc Ánh -----> ATNA
???
Thôi thì làm cả hai luôn
Mã:
Function AbbName(ByVal Text As String, Optional ByVal Delimiter As String = "") As String
  Dim sTmp As String
  With WorksheetFunction
    sTmp = .Trim(Text)
    sTmp = "{""" & Replace(.Trim(sTmp), " ", """;""") & """}"
    AbbName = Join(Evaluate("Transpose(LEFT(" & sTmp & ",1))"), Delimiter)
  End With
End Function
Function RemoveMarks(ByVal Text As String) As String
  Dim CharCode, i As Long
  Dim ResText As String, sTmp As String
  On Error Resume Next
  sTmp = Text
  CharCode = Array(7855, 7857, 7859, 7861, 7863, 7845, 7847, 7849, 7851, 7853, 225, _
                   224, 7843, 227, 7841, 259, 226, 273, 7871, 7873, 7875, 7877, 7879, _
                   233, 232, 7867, 7869, 7865, 234, 237, 236, 7881, 297, 7883, 7889, _
                   7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907, 243, 242, _
                   7887, 245, 7885, 244, 417, 7913, 7915, 7917, 7919, 7921, 250, _
                   249, 7911, 361, 7909, 432, 253, 7923, 7927, 7929, 7925)
  ResText = "aaaaaaaaaaaaaaaaadeeeeeeeeeeeiiiiiooooooooooooooooouuuuuuuuuuuyyyyy"
  For i = 0 To UBound(CharCode)
    sTmp = Replace(sTmp, ChrW(CharCode(i)), Mid(ResText, i + 1, 1))
    sTmp = Replace(sTmp, UCase(ChrW(CharCode(i))), UCase(Mid(ResText, i + 1, 1)))
  Next
  RemoveMarks = sTmp
End Function
Muốn kết quả 1 thì: =AbbName(A1)
Muốn kết quả 2 thì =AbbName(RemoveMarks(A1))
------------------
Trong code có đối số Optional ByVal Delimiter As String = "" là vì đôi khi có người muốn viết tắt chữ Nguyễn Anh Tuấn thành N.A.T cũng không chừng. Khi ấy công thức sẽ =AbbName(A1, ".")
 
Mình lại có bài tạo mã NV từ họ & tên NV theo luật dưới đây, xin các bạn thử sức giúp mình
PHP:
'
Mã NV     Tên Nhân viên    '
NVH   Nguyễn Viết Hoài
NVH  Ngô Văn Việt Hải
TFD  Trần Đại Danh
DJF  Dương Động
AVL  Âu Văn Lượm
CNM  Công Tằng Tôn Nữ Nguyệt Minh
ANY  Ái Thị Như Ý
. .    . . . .

Chúc các bạn ngày cuối tuần vui vẻ như ý!
 
Web KT
Back
Top Bottom