Trả lời nhanh

Hàm tự tạo Chuanhoachuoi bằng VBA giúp chuẩn hóa chuỗi trong Excel: xóa khoảng trắng đầu và cuối, xóa các khoảng trắng liên tiếp giữa các từ và viết hoa chữ cái đầu mỗi từ. Cách làm: nhấn ALT + F11, vào Insert > Module, dán đoạn mã rồi lưu. Sau đó dùng cú pháp =Chuanhoachuoi(A2). Nếu gặp lỗi #NAME? thì bật Enable all macros trong Trust Center (Office 2007).

Ý chính

  • Hàm xóa khoảng trắng thừa đầu, cuối, giữa các từ và viết hoa chữ cái đầu mỗi từ
  • Nhấn ALT + F11 mở Visual Basic Editor, chọn Insert > Module rồi dán mã
  • Cú pháp: =Chuanhoachuoi(A2) hoặc =Chuanhoachuoi("chuỗi cần chuẩn hóa")
  • Lỗi #NAME? xử lý bằng Trust Center Settings > Macro Settings > Enable all macros
  • Khi lưu file chứa macro cần chọn định dạng cho phép lưu macro

Theo quy định tại thời điểm đăng bài (11/01/2014); chính sách có thể đã thay đổi.

Bạn vừa Copy một danh sách học viên từ trên mạng vào Excel, tuy nhiên khi Copy vào Excel thì danh sách này xuất hiện nhiều khoảng trắng ở đầu và cuối mỗi học viên. Ngoài ra các chữ cái đầu tiên ở phần họ đệm và tên vẫn là chữ thường. Bạn đã chuẩn hóa lại danh sách này bằng tay, tuy nhiên với cách làm thủ công này tốn nhiều thời gian. Vậy có cách nào đó để có thể tự động xử lý chuẩn hóa toàn bộ danh sách này không? Hôm nay Kế toán Đức Minh sẽ giới thiệu với các Bạn cách viết hàm chuẩn hóa trong Excel, hàm này sẽ thực hiện các công việc: xóa bỏ các ký tự trống ở đầu và cuối, Xóa bỏ từ 2 ký tự trống liên tiếp ở giữa các từ, Viết hoa chữ cái đầu tiên tại mỗi từ.
1. Khởi động Microsoft Excel 2. Nhấn ALT + F11 để bắt đầu Visual Basic Editor Vào menu Inser\Module 3. Nhập toàn bộ đoạn mã sau vào Function Chuanhoachuoi(str As String) As String
Dim sChuoi As String
Dim mlen As Long
Dim i As Long
'Neu chuoi =0 thi khong xu ly
If Len(str) = 0 Then Exit Function
'Xoa bo cac ky tu trang o dau va cuoi
str = Trim(str)
'Dem so ky tu chuoi
mlen = Len(str)

'Loai bo hai ki tu trong lien tiep
For i = 1 To mlen
If Mid(str, i, 1) = " " And Mid(str, i + 1, 1) = " " Then
str = Replace(str, " ", " ")
i = i - 1
End If
Next

For i = 1 To mlen
' Chuyen cac ky tu dau tien mot tu sang chu hoa
If Mid(str, i, 1) = " " Then
sChuoi = sChuoi & " " & UCase(Mid(str, i + 1, 1))
i = i + 1
Else
'Chuyen chu cai dau tien cua cau sang chu hoa
If i = 1 Then
sChuoi = UCase(Mid(str, 1, 1))
Else
sChuoi = sChuoi & LCase(Mid(str, i, 1))
End If
End If
Next
Chuanhoachuoi = sChuoi
End Function
Kích nút Save để lưu lại, bạn có thể xem thêm bài viết cách lưu file Excel khi chứa Macro hoặc hàm .

4. Quay trở lại màn hình Excel và sử dụng hàm vừa tạo

Có 2 cách để sử dụng hàm vừa tạo
- Cách 1:
+ Cú pháp: =Chuanhoachuoi(Chuỗi cần chuẩn hóa)
+ Ví dụ: =Chuanhoachuoi (“cong hoa xa hoi chu nghia viet nam”)
- Cách 2:
+Cú pháp: = Chuanhoachuoi (Địa chỉ ô cần chuyển)
+ Ví dụ: = Chuanhoachuoi (A2)

Nếu bạn nào sau khi đã tạo hàm xong nhưng khi sử dụng thì gặp phải trường hợp giá trị trả về #NAME? thì phải thực hiện theo các bước dưới đây nếu sử dụng Office 2007.

- Kích nút Office Button\Excel Options
- Chọn Trust Center\Trust Center Settings

- Chọn Macro Settings\Enable all macros (not recommended; potentially dangerous code can run)



- 
Chọn OK

Hi vọng hàm chuẩn hóa chuỗi sẽ giúp ích các bạn nhiều trong công việc.

Bạn đọc có thể tham khảo thêm các bài viết có liên quan:

>>> Hướng dẫn hàm LEN và TRIM trong excel – Kế toán Đức Minh

Thực hành cùng giảng viênMuốn làm được việc này trên chứng từ thật? Học kèm 1-1 với giảng viên Đức Minh.Xem khoá học

Khoá học liên quan

Kế toán thực tế

Kèm 1-1 trên chứng từ thật · khai giảng liên tục