(Thủ thuật VBA Excel)
- Hiện nay Excel đã trở nên rất thông dụng đối với mọi đối tượng từ: nhân viên văn phòng, kế toán, thủ quỹ, giáo viên, kỹ sư, học sinh… Excel được dùng để giải quyết những công việc đơn giản đến phức tạp. Trong công việc có những người chỉ cần sử dụng các hàm có sẵn trong Excel cũng có thể giải quyết được tất cả các công việc, nhưng cũng có người phải tự viết hàm riêng để xử lý công việc được nhanh chóng và hiệu quả.Trong thực tế có đôi khi bạn cần phải xử lý một danh sách hay một chuỗi ký tự sang tiếng việt không dấu, để thực hiện công việc này nếu sử dụng hàm có sẵn thì chưa có nhưng nếu xử lý bằng tay thì mất nhiều thời gian. Vậy có cách nào để có thể xử lý công việc này một cách nhanh chóng không? Hôm nay Kênh phần mềm việt xin giới thiệu với các bạn một giải pháp, đó là tự viết hàm loại bỏ dấu tiếng việ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 ConvertToUnSign(ByVal sContent As String) As String
Dim i As Long
Dim intCode As Long
Dim sChar As String
Dim sConvert As String
ConvertToUnSign = AscW(sContent)
For i = 1 To Len(sContent)
sChar = Mid(sContent, i, 1)
If sChar <> "" Then
intCode = AscW(sChar)
End If
Select Case intCode
Case 273
sConvert = sConvert & "d"
Case 272
sConvert = sConvert & "D"
Case 224, 225, 226, 227, 259, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863
sConvert = sConvert & "a"
Case 192, 193, 194, 195, 258, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862
sConvert = sConvert & "A"
Case 232, 233, 234, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879
sConvert = sConvert & "e"
Case 200, 201, 202, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878
sConvert = sConvert & "E"
Case 236, 237, 297, 7881, 7883
sConvert = sConvert & "i"
Case 204, 205, 296, 7880, 7882
sConvert = sConvert & "I"
Case 242, 243, 244, 245, 417, 7885, 7887, 7889, 7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907
sConvert = sConvert & "o"
Case 210, 211, 212, 213, 416, 7884, 7886, 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902, 7904, 7906
sConvert = sConvert & "O"
Case 249, 250, 361, 432, 7909, 7911, 7913, 7915, 7917, 7919, 7921
sConvert = sConvert & "u"
Case 217, 218, 360, 431, 7908, 7910, 7912, 7914, 7916, 7918, 7920
sConvert = sConvert & "U"
Case 253, 7923, 7925, 7927, 7929
sConvert = sConvert & "y"
Case 221, 7922, 7924, 7926, 7928
sConvert = sConvert & "Y"
Case Else
sConvert = sConvert & sChar
End Select
Next
ConvertToUnSign = sConvert
End Function
Dim i As Long
Dim intCode As Long
Dim sChar As String
Dim sConvert As String
ConvertToUnSign = AscW(sContent)
For i = 1 To Len(sContent)
sChar = Mid(sContent, i, 1)
If sChar <> "" Then
intCode = AscW(sChar)
End If
Select Case intCode
Case 273
sConvert = sConvert & "d"
Case 272
sConvert = sConvert & "D"
Case 224, 225, 226, 227, 259, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859, 7861, 7863
sConvert = sConvert & "a"
Case 192, 193, 194, 195, 258, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856, 7858, 7860, 7862
sConvert = sConvert & "A"
Case 232, 233, 234, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879
sConvert = sConvert & "e"
Case 200, 201, 202, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878
sConvert = sConvert & "E"
Case 236, 237, 297, 7881, 7883
sConvert = sConvert & "i"
Case 204, 205, 296, 7880, 7882
sConvert = sConvert & "I"
Case 242, 243, 244, 245, 417, 7885, 7887, 7889, 7891, 7893, 7895, 7897, 7899, 7901, 7903, 7905, 7907
sConvert = sConvert & "o"
Case 210, 211, 212, 213, 416, 7884, 7886, 7888, 7890, 7892, 7894, 7896, 7898, 7900, 7902, 7904, 7906
sConvert = sConvert & "O"
Case 249, 250, 361, 432, 7909, 7911, 7913, 7915, 7917, 7919, 7921
sConvert = sConvert & "u"
Case 217, 218, 360, 431, 7908, 7910, 7912, 7914, 7916, 7918, 7920
sConvert = sConvert & "U"
Case 253, 7923, 7925, 7927, 7929
sConvert = sConvert & "y"
Case 221, 7922, 7924, 7926, 7928
sConvert = sConvert & "Y"
Case Else
sConvert = sConvert & sChar
End Select
Next
ConvertToUnSign = sConvert
End Function
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: =ConvertToUnSign(Chuỗi cần chuẩn hóa)
+ Ví dụ: =ConvertToUnSign(“Cộng hòa xã hội chủ nghĩa Việt Nam”)
- Cách 2:
+Cú pháp: = ConvertToUnSign(Địa chỉ ô cần chuyển)
+ Ví dụ: = ConvertToUnSign(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 loại bỏ dấu tiếng việt sẽ giúp ích các bạn nhiều trong công việc.
Post a Comment