Các hàm tách họ tên

Chia sẻ bởi:huonggiang151192
★★★★★
Quảng cáo

Mình gửi lên diễn đàn Code của một số hàm tự tạo: Tách họ, chữ lót và tên ra khỏi tên.
Các hàm này sẽ giúp các bạn tách "Họ", "Chữ lót", "Họ và chữ lót", "Tên" ra khỏi "Họ tên".
Các hàm này còn có thể bỏ các khoảng trống dư trong "Họ tên".
Các bạn tham khảo thêm file đính kèm nhé
Cảm ơn các bạn.

_______________________________
Function tachho(i As String) As String
i = Trim(i)
Do While Left(i, 1) <> " "
tachho = tachho & Left(i, 1)
i = Right(i, Len(i) - 1)
Loop
End Function
__________________________________
Function Tachchulot(j As String) As String
j = Trim(j)
Do While Right(j, 1) <> " "
j = Left(j, Len(j) - 1)
Loop
Do While Left(j, 1) <> " "
j = Right(j, Len(j) - 1)
Loop
j = Trim(j)
Tachchulot = j
End Function
_______________________________________
Function Tachhovachulot(k As String) As String
k = Trim(k)
Do While Right(k, 1) <> " "
k = Left(k, Len(k) - 1)
Loop
k = Trim(k)
Tachhovachulot = k
End Function
_______________________________
Function tachten(l As String) As String
l = Trim(l)
Do While Right(l, 1) <> " "
tachten = Right(l, 1) & tachten
l = Left(l, Len(l) - 1)
Loop
End Function

Mình thấy có bạn hỏi về lấy các ký tự đầu của một chuỗi ký tự.
Mình cũng viết Code thử. Các bạn tham khảo nhé.

Function laykytudau(i As String) As String
Dim k As String, j As Double
k = Left(i, 1)
For j = 2 To Len(i)
If Mid(i, j, 1) = " " Then
k = k & Mid(i, j + 1, 1)
End If
Next j
laykytudau = k
End Function

Với các hàm loại này, chỉ làm đơn giản như vầy thôi, không cần phải Do … Loop:

Function TachHo(ByVal HoTen As String) As String
    HoTen = Trim(HoTen)
    If HoTen = "" Then Exit Function
    Dim SplHoTen
    SplHoTen = Split(HoTen, " ")
    TachHo = SplHoTen(0)
End Function

Function TachTen(ByVal HoTen As String) As String
    HoTen = Trim(HoTen)
    If HoTen = "" Then Exit Function
    Dim SplHoTen
    SplHoTen = Split(HoTen, " ")
    TachTen = SplHoTen(UBound(SplHoTen))
End Function

Function TachTenLot(ByVal HoTen As String) As String
    HoTen = WorksheetFunction.Trim(HoTen)
    If HoTen = "" Then Exit Function
    Dim SplHoTen, u As Long
    SplHoTen = Split(HoTen, " ")
    u = UBound(SplHoTen) - 1
    If u > 0 Then
        ReDim Preserve SplHoTen(0 To u)
        TachTenLot = Join(SplHoTen, " ")
        TachTenLot = Mid(TachTenLot, InStr(TachTenLot, " ") + 1)
    End If
End Function

Function TachHoTenLot(ByVal HoTen As String) As String
    HoTen = WorksheetFunction.Trim(HoTen)
    If HoTen = "" Then Exit Function
    Dim SplHoTen, u As Long
    SplHoTen = Split(HoTen, " ")
    u = UBound(SplHoTen) - 1
    If u = -1 Then
        TachHoTenLot = HoTen
    Else
        ReDim Preserve SplHoTen(0 To u)
        TachHoTenLot = Join(SplHoTen, " ")
    End If
End Function

Ngay các hàm của bạn, giả sử rằng nếu ai đó "lai căng" đặt tên cho con chỉ một chữ (Jenni, Tom, Chanel v.v…) thì sẽ bị lỗi đấy! (nhưng hy vọng không ai đặt như thế!)

Khóa học Power PI – Ứng dung trong Nhân sự
Khóa học SprinGO phù hợp

Khóa học Power PI – Ứng dung trong Nhân sự

TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...

Xem khóa học
★★★★★ 5 ★ 1 👤 4 ▥ 0
Quảng cáo

Bạn nên đọc

Bình luận

Quảng cáo

Cũ vẫn chất

Xem thêm