songxanh269
Thành viên mới
![](/diendan/data/PhoToDanhHieu/gold.gif)
- Tham gia
- 22/6/08
- Bài viết
- 5
- Được thích
- 2
Cảm ơn bạn đã chia sẽ nhưng giá mà bạn tìm kiến trước thì sẽ thấy chủ đề này có đầy trên GPE rồi, mà code cũng ngắn gọn chứ đâu có dài lê thê như của bạn vậyAdd-in này giúp bạn tách họ tên ra thành họ, tên hoặc tên đệm tuỳ ý muốn. Cú pháp như sau:
Họ = ho(......)
Tên đệm = dem(......)
Tên=ten(......)
Các bạn download tại đây
Bạn thử với tên 2 từ xem! Chẳng hạn là Trần TâmMình đã kiểm tra lại rồi nhưng không thấy lỗi. Bạn có thể chỉ rõ hơn lỗi nào không để mình sửa lại cho hoàn chỉnh?
Cảm ơn bạn. Mình đã sửa lại lỗi mà bạn nói. Hi vọng là không còn lỗi nào nữa.Bạn thử với tên 2 từ xem! Chẳng hạn là Trần Tâm
Ngoài ra, code bạn thiếu bẫy lỗi cho trường hợp tên nào đó là 1 từ hoặc rổng
Tặng bạn code tôi viết, dùng Split. Tách họ, tách tên và tách chữ lót đều gom vào cùng 1 hàmCảm ơn bạn. Mình đã sửa lại lỗi mà bạn nói. Hi vọng là không còn lỗi nào nữa.
Function NameSplit(ByVal FullName As String, ByVal sType As String) As String
Dim Temp, Item1 As String, Item2 As String, Item3 As String, i As Long
On Error Resume Next
FullName = WorksheetFunction.Trim(FullName)
Temp = Split(FullName, " ")
Item3 = Temp(UBound(Temp))
Item1 = Temp(0)
Item2 = Trim(Replace(Replace(FullName, Item1, ""), Item3, ""))
Select Case UCase(sType)
Case "FIRSTNAME": NameSplit = IIf(UBound(Temp) > 0, Item1, "")
Case "MIDDLENAME"
If UBound(Temp) > 1 Then
For i = 1 To UBound(Temp) - 1
NameSplit = NameSplit & " " & Temp(i)
Next
NameSplit = Trim(NameSplit)
End If
Case "LASTNAME": NameSplit = Item3
End Select
End Function
Sub Tach_Ten()
Set Rng = Range([b3], [b65536].End(3))
With Rng
.Resize(, 4) = .Value
.Offset(, 1).Replace " *", "", 2
.Offset(, 3).Replace "* ", "", 2
For Each cls In Rng
cls(1, 3).Replace cls(1, 2), "", 2
cls(1, 3).Replace cls(1, 4), "", 2
Next
End With
End Sub
bạn cho mình hỏi sau khi down file Tach_ten về máy thì mình muốn dùng thế nào để tách tên thế, tin học mình kém lắm mong bạn chỉ giúpGóp vui đoạn code kiểu "mực hệt"
Mã:Sub Tach_Ten() Set Rng = Range([b3], [b65536].End(3)) With Rng .Resize(, 4) = .Value .Offset(, 1).Replace " *", "", 2 .Offset(, 3).Replace "* ", "", 2 For Each cls In Rng cls(1, 3).Replace cls(1, 2), "", 2 cls(1, 3).Replace cls(1, 4), "", 2 Next End With End Sub
Code xài ngon. Cám ơn bạn đã chia sẻ.Tặng bạn code tôi viết, dùng Split. Tách họ, tách tên và tách chữ lót đều gom vào cùng 1 hàm
PHP:Function NameSplit(ByVal FullName As String, ByVal sType As String) As String Dim Temp, Item1 As String, Item2 As String, Item3 As String, i As Long On Error Resume Next FullName = WorksheetFunction.Trim(FullName) Temp = Split(FullName, " ") Item3 = Temp(UBound(Temp)) Item1 = Temp(0) Item2 = Trim(Replace(Replace(FullName, Item1, ""), Item3, "")) Select Case UCase(sType) Case "FIRSTNAME": NameSplit = IIf(UBound(Temp) > 0, Item1, "") Case "MIDDLENAME" If UBound(Temp) > 1 Then For i = 1 To UBound(Temp) - 1 NameSplit = NameSplit & " " & Temp(i) Next NameSplit = Trim(NameSplit) End If Case "LASTNAME": NameSplit = Item3 End Select End Function
bạn ơi dướng dẫn mình gõ hàm với,Code xài ngon. Cám ơn bạn đã chia sẻ.
gõ =NameSplit(A1,"nội dung cần tách")bạn ơi dướng dẫn mình gõ hàm với,
mình gõ =NameSplit(A1) không ra nội dung cần tách,
cảm ơn bạn nhiều