Saturday, September 1, 2018

Code Vba Thông Dụng Trong Excel - Bài 1

Như các bạn đã biết Excel là một phần mềm office, dữ liệu được lưu nhiều thì đôi lúc nó trở nên nặng. Vì vậy các bạn cần hạn chế sử dụng công thức link quá nhiều, chỉ sử dụng những công thức cần thiết nhất. VBA là một công cụ rất tốt, nó sẽ giúp bạn thao tác nhẹ nhàng, nhanh gọn, nhưng rất chính xác.

+ Trong loạt bài này, mình sẽ giới thiệu đến các bạn một số code VBA thông dụng nhất.

1. Code VBA đọc số ra chữ trong Excel
- Đa phần, hiện nay các bạn sử dụng Add-in để tiến hành đọc số ra chữ, điều này rất bất tiện. Thứ nhất việc cài Add-in vào có thể làm file thêm nặng hơn. Thứ hai, nếu sử dụng file ở máy khác không có Add-in đó thì các bạn sẽ không dùng được nữa. Thứ ba, khi thao tác Add-in các bạn phải chọn công cụ và làm theo bảng điều khiển, tốn nhiều thao tác. Với VBA này các bạn chỉ cần đặt tại ô, gõ "=DocSo(tiếp đến chọn ô số cần đọc)", Enter.
+ Đoạn Code như sau:

Function DocSo(ByVal Number, Optional ByVal Font = 1) As String
Dim MyArray

Dim Str
Str = Format(Abs(Number), "000000000000000000")
Select Case Font
Case 1
MyArray = Array("không ", "m" & ChrW(7897) & "t ", "hai ", "ba ", "b" & ChrW(7889) & "n ", "n" & ChrW(259) & "m ", "sáu ", "b" & ChrW(7843) & "y ", "tám ", "chín ", "tri" & ChrW(7879) & "u, ", "ngàn, ", "t" & ChrW(7927) & ", ", "tri" & ChrW(7879) & "u, ", "ngàn, ", "", "tr" & ChrW(259) & "m ", "m" & ChrW(432) & ChrW(417) & "i ", "không " & "m" & ChrW(432) & ChrW(417) & "i" & " không ", "không " & "m" & ChrW(432) & ChrW(417) & "i", "l" & ChrW(7867), "m" & ChrW(432) & ChrW(417) & "i" & " không", "m" & ChrW(432) & ChrW(417) & "i", "m" & ChrW(432) & ChrW(417) & "i" & " n" & ChrW(259) & "m", "m" & ChrW(432) & ChrW(417) & "i" & " l" & ChrW(259) & "m", "m" & ChrW(7897) & "t " & "m" & ChrW(432) & ChrW(417) & "i", "m" & ChrW(432) & ChrW(7901) & "i", "m" & ChrW(432) & ChrW(417) & "i" & " m" & ChrW(7897) & "t", "m" & ChrW(432) & ChrW(417) & "i" & " m" & ChrW(7889) & "t", "Âm ")
Case 2
MyArray = Array("khoâng ", "moät ", "hai ", "ba ", "boán ", "naêm ", "saùu ", "baûy ", "taùm ", "chín ", "trieäu, ", "ngaøn, ", "tyû, ", "trieäu, ", "ngaøn, ", "", "traêm ", "möôi ", "khoâng möôi khoâng ", "khoâng möôi", "leû", "möôi khoâng", "möôi", "möôi naêm", "möôi laêm", "moät möôi", "möôøi", "möôi moät", "möôi moát", "AÂm ")
Case 3
MyArray = Array("kh«ng ", "mét ", "hai ", "ba ", "bèn ", "n¨m ", "s¸u ", "b¶y ", "t¸m ", "chÝn ", "triÖu, ", "ngµn, ", "tû, ", "triÖu, ", "ngµn, ", "", "tr¨m ", "m­¬i ", "kh«ng m­¬i kh«ng ", "kh«ng m­¬i", "lÎ", "m­¬i kh«ng", "m­¬i", "m­¬i n¨m", "m­¬i l¨m", "mét m­¬i", "m­êi", "m­¬i mét", "m­¬i mèt", "©m ")
End Select
If Str = "000000000000000000" Then
    DocSo = UCase(Left(MyArray(0), 1)) & Trim(Mid(MyArray(0), 2)) & "."
    Exit Function
End If
For i = 1 To Len(Str)
If Left(Str, i) <> 0 And Mid(Str, (Int((i + 2) / 3) - 1) * 3 + 1, 3) <> 0 Then
    DocSo = DocSo & MyArray(Mid(Str, i, 1)) & MyArray(-(9 + i / 3) * (i Mod 3 = 0) - (15 + i Mod 3) * (i Mod 3 <> 0))
ElseIf i = 9 And Mid(Str, 7, 3) = 0 And Left(Str, 6) <> 0 Then
    DocSo = DocSo & MyArray(12)
End If
Next
DocSo = Trim(Replace(Replace(Replace(Replace(Replace(Replace(DocSo, MyArray(18), MyArray(15)), MyArray(19), MyArray(20)), MyArray(21), MyArray(22)), MyArray(23), MyArray(24)), MyArray(25), MyArray(26)), MyArray(27), MyArray(28)))
If Number < 0 Then
DocSo = MyArray(29) & DocSo
End If
DocSo = Replace(UCase(Left(DocSo, 1)) & Mid(DocSo, 2) & ".", ",.", ".")
End Function

+ Các bạn tiến hành đưa Code Vba vào file Excel theo hình ảnh mình hướng dẫn sau nghe.
1. Các bạn mở một file excel bất kỳ muốn chèn code vào. VD: file mình có tên là "Book1-TT1".
    Tiếp theo, các bạn bấm phím "ALT + F11" trên bàn phím để mở trình VbaProject.
2. Các bạn kích chuột phải vào dòng VBAProject (Book1-TT1.xlsx). Chọn như hình thứ 2.
3. Các bạn kích đúp chuột vào "Module" đã tạo và copy code Vba dán vào khung bên phải.
4. Các bạn bấm vào nút "Save" trên trình VbaProject để lưu code lại, như hình thứ 4.
Thế là xong, các bạn tắt trình VBA, ra ngoài file excel, đặt con trỏ ở một ô và dùng công thức như mình giới thiệu ở đầu bài để xem kết quả.
=> Còn rất nhiều code hay và hữu ích, các bạn xem tiếp những bài sau nhé. Cảm ơn các bạn.



0 comments:

Post a Comment