Hỏi về hàm lấy các chữ cuối cùng của Họ ,Tên Đệm và Nguyên Tên? (1 người xem)

  • Thread starter Thread starter KUMI
  • Ngày gửi Ngày gửi

Người dùng đang xem chủ đề này

KUMI

Bụi phấn
Tham gia
17/1/12
Bài viết
564
Được thích
572
Xin chào mọi người.
Dùng hàm nào để có được kết quả như ở cột kết quả ạ?
Mong các Chuyên gia GPE giúp đỡ!
Xin Chân Thành Cám Ơn!
untitled.JPG
 
Bạn dùng tạm VBA nhé
Mã:
Function Ghep(Chuoi As Range)
Dim Arr
Dim Kq As String
Arr = Split(Chuoi, " ")
For i = 0 To UBound(Arr) - 1
    Kq = Kq & Right(Arr(i), 1)
Next
Ghep = Kq & Arr(UBound(Arr))
End Function
 
Bạn dùng tạm VBA nhé
Mã:
Function Ghep(Chuoi As Range)
Dim Arr
Dim Kq As String
Arr = Split(Chuoi, " ")
For i = 0 To UBound(Arr) - 1
    Kq = Kq & Right(Arr(i), 1)
Next
Ghep = Kq & Arr(UBound(Arr))
End Function

Phiền thầy có thể gửi file kèm được không ạ?
Nhìn code đó Em chưa biết phải thực hiện kiểu gì ạ!
Cám ơn Thầy!
 
Phiền thầy có thể gửi file kèm được không ạ?
Nhìn code đó Em chưa biết phải thực hiện kiểu gì ạ!
Cám ơn Thầy!
Bạn mở 1 file Excel nhấn Alt+F11 chọn Insert Module và Copy code trên Paste vào Module vừa tạo
Nhấn Alt+Q
Tại cửa sổ Excel tại D7=Ghep(C7) Enter --->OK
 
Bạn dùng tạm VBA nhé
Mã:
Function Ghep(Chuoi As Range)
Dim Arr
Dim Kq As String
Arr = Split(Chuoi, " ")
For i = 0 To UBound(Arr) - 1
    Kq = Kq & Right(Arr(i), 1)
Next
Ghep = Kq & Arr(UBound(Arr))
End Function

Code này phải sửa lại thế này mới chính xác:
Mã:
Function Ghep(Chuoi As String) As String
  Dim Arr, i As Long, Kq As String
  [COLOR=#ff0000]On Error Resume Next[/COLOR]
  Arr = Split([COLOR=#ff0000]Trim([/COLOR]Chuoi[COLOR=#ff0000])[/COLOR], " ")
  [COLOR=#ff0000]If UBound(Arr) > -1 Then[/COLOR]
    For i = 0 To UBound(Arr) - 1
      Kq = Kq & Right(Arr(i), 1)
    Next
    Ghep = Kq & Arr(UBound(Arr))
 [COLOR=#ff0000] End If[/COLOR]
End Function
Chổ màu đỏ là chổ mới thêm vào
 
Code này phải sửa lại thế này mới chính xác:
Mã:
Function Ghep(Chuoi As String) As String
  Dim Arr, i As Long, Kq As String
  [COLOR=#ff0000]On Error Resume Next[/COLOR]
  Arr = Split([COLOR=#ff0000]Trim([/COLOR]Chuoi[COLOR=#ff0000])[/COLOR], " ")
  [COLOR=#ff0000]If UBound(Arr) > -1 Then[/COLOR]
    For i = 0 To UBound(Arr) - 1
      Kq = Kq & Right(Arr(i), 1)
    Next
    Ghep = Kq & Arr(UBound(Arr))
 [COLOR=#ff0000] End If[/COLOR]
End Function
Chổ màu đỏ là chổ mới thêm vào

Thầy cho em hỏi 1 chút:
1 - Vì sao phải bẫy lỗi 2 lần?
2 - Trim(Chuoi)...: để loại bỏ trường hợp nào thế thầy, e thay không trim vẫn thấy có kết quả?
Em mới tập thành VBA mong thầy chỉ giáo nhiều hơn.
 
Thầy cho em hỏi 1 chút:
1 - Vì sao phải bẫy lỗi 2 lần?
2 - Trim(Chuoi)...: để loại bỏ trường hợp nào thế thầy, e thay không trim vẫn thấy có kết quả?
Em mới tập thành VBA mong thầy chỉ giáo nhiều hơn.
1. Nếu là Ghep(A1) mà dữ liệu A1 không có gì nên cần If UBound(Arr) > -1 Then, còn câu On Error Resume Next bạn không cho thì cũng không sao, chỉ là nếu code có những lỗi quá nhỏ không ảnh hưởng đến kết quả hiển thị thì bỏ qua và chạy típ thôi. Với những ai mới học CODE thì người ta không khuyến khích dùng câu lệnh này vì người mới học muốn kiểm soát CODE mình viết có bị lỗi hay không thì nên bỏ câu này đi để CODE sai còn biết chỗ nào mà sửa.Sư phụ ndu viết code siêu sao rồi nên mới cho câu này vào ạ chứ mình viết code thì cũng k dám ^^ :D

2. Trim(Chuỗi) để phòng trường hợp chuỗi của bạn chứa ký tự trống vô nghĩa ở cuối chuỗi đó, bạn gõ thử chữ "Nguyen Minh " thế này xem kết quả hàm GHEP() cho ra gì nhé.^^
 

Bài viết mới nhất

Back
Top Bottom