Cách đổi số ra chữ trong Excel

Để tạo 1 đoạn mã Macro chuyển đổi số ra chữ trong 1 file Excel bạn làm các bước
sau:
1. Mở và Save tên tập tin Excel mới
2. Đoạn mã Macro luôn chạy ở mức "Security trung bình or thấp": chọn Tools--
>Macro-->Security-->chọn Medium hoặc Low
3. Vào chương trình Visual Basic: chọn Tools-->Macro-->Security-->Visual Basic
Editor--> Hiện cửa sổ Microsoft Visual Basic
4. Trong cửa sổ Microsoft Visual Basic: chọn Insert --> Module--> xuất hiện
khoảng trắng bên phải --> bạn "Copy" đoạn mã Macro màu xanh dưới đây vào
khoảng trắng này

Function DocSoVni(conso) As String
s09 = Array("", " moät", " hai", " ba", " boán", " naêm", " saùu", " baûy", " taùm",
" chín")
lop3 = Array("", " trieäu", " nghìn", " tyû")
If Trim(conso) = "" Then
DocSoVni = ""
ElseIf IsNumeric(conso) = True Then
If conso < 0 Then dau = "aâm " Else dau = ""
conso = Application.WorksheetFunction.Round(Abs(conso), 0)
conso = " " & conso
conso = Replace(conso, ",", "", 1)
vt = InStr(1, conso, "E")
If vt > 0 Then
sonhan = Val(Mid(conso, vt + 1))
conso = Trim(Mid(conso, 2, vt - 2))
conso = conso & String(sonhan - Len(conso) + 1, "0")
End If
conso = Trim(conso)
sochuso = Len(conso) Mod 9
If sochuso > 0 Then conso = String(9 - (sochuso Mod 12), "0") & conso
docso = ""
i=1
lop = 1
Do
n1 = Mid(conso, i, 1)
n2 = Mid(conso, i + 1, 1)
n3 = Mid(conso, i + 2, 1)
baso = Mid(conso, i, 3)
i=i+3
If n1 & n2 & n3 = "000" Then
If docso <> "" And lop = 3 And Len(conso) - i > 2 Then s123 = " tyû" Else s123 =
""
Else
If n1 = 0 Then
If docso = "" Then s1 = "" Else s1 = " khoâng traêm"

" s" & ChrW(225) & "u". " hai".WorksheetFunction. " tri" & ChrW(7879) & "u". " ngh" & ChrW(236) & "n". 0) . " b" & ChrW(7843) & "y". " t" & ChrW(7927)) 'Stop If Trim(conso) = "" Then DocSoUni = "" ElseIf IsNumeric(conso) = True Then If conso < 0 Then dau = ChrW(226) & "m " Else dau = "" conso = Application.Round(Abs(conso). " ch" & ChrW(237) & "n") lop3 = Array("". " t" & ChrW(225) & "m".Else s1 = s09(n1) & " traêm" End If If n2 = 0 Then If s1 = "" Or n3 = 0 Then s2 = "" Else s2 = " linh" End If Else If n2 = 1 Then s2 = " möôøi" Else s2 = s09(n2) & " möôi" End If If n3 = 1 Then If n2 = 1 Or n2 = 0 Then s3 = " moät" Else s3 = " moát" ElseIf n3 = 5 And n2 <> 0 Then s3 = " laêm" Else s3 = s09(n3) End If If i > Len(conso) Then s123 = s1 & s2 & s3 Else s123 = s1 & s2 & s3 & lop3(lop) End If End If lop = lop + 1 If lop > 3 Then lop = 1 docso = docso & s123 If i > Len(conso) Then Exit Do Loop If docso = "" Then DocSoVni = "khoâng" Else DocSoVni = dau & Trim(docso) Else DocSoVni = conso End If End Function Function DocSoUni(conso) As String s09 = Array("". " m" & ChrW(7897) & "t". " ba". " n" & ChrW(259) & "m". " b" & ChrW(7889) & "n".

Len(conso) + 1.i > 2 Then s123 = " t" & ChrW(7927) Else s123 = "" Else If n1 = 0 Then If docso = "" Then s1 = "" Else s1 = " kh" & ChrW(244) & "ng tr" & ChrW(259) & "m" Else s1 = s09(n1) & " tr" & ChrW(259) & "m" End If If n2 = 0 Then If s1 = "" Or n3 = 0 Then s2 = "" Else s2 = " linh" End If Else If n2 = 1 Then s2 = " m" & ChrW(432) & ChrW(7901) & "i" Else s2 = s09(n2) & " m" & ChrW(432) & ChrW(417) & "i" End If If n3 = 1 Then If n2 = 1 Or n2 = 0 Then s3 = " m" & ChrW(7897) & "t" Else s3 = " m" & ChrW(7889) & "t" ElseIf n3 = 5 And n2 <> 0 Then s3 = " l" & ChrW(259) & "m" Else s3 = s09(n3) . i.conso = " " & conso conso = Replace(conso. i + 2. 2. 1) n3 = Mid(conso. i + 1. 3) i=i+3 If n1 & n2 & n3 = "000" Then If docso <> "" And lop = 3 And Len(conso) . "0") End If conso = Trim(conso) sochuso = Len(conso) Mod 9 If sochuso > 0 Then conso = String(9 . 1) baso = Mid(conso. 1) vt = InStr(1. i. "". vt . ".2)) conso = conso & String(sonhan . conso.(sochuso Mod 12). "E") If vt > 0 Then sonhan = Val(Mid(conso. vt + 1)) conso = Trim(Mid(conso.". "0") & conso docso = "" i=1 lop = 1 Do n1 = Mid(conso. 1) n2 = Mid(conso.

.End If If i > Len(conso) Then s123 = s1 & s2 & s3 Else s123 = s1 & s2 & s3 & lop3(lop) End If End If lop = lop + 1 If lop > 3 Then lop = 1 docso = docso & s123 If i > Len(conso) Then Exit Do Loop If docso = "" Then DocSoUni = "kh" & ChrW(244) & "ng" Else DocSoUni = dau & Trim(docso) Else DocSoUni = conso End If End Function 5.. Tại cửa sổ Microsoft Excel ta sẽ test như sau: ..ai dùng font nào thì dùng câu lệnh đó ..456.Trong đoạn mã Macro có 2 dòng màu xanh dương in đậm là DocSoVni và DocSoUni..bạn gõ lại như sau: =DocSoUni(A1)&" VNĐ" hoặc =DocSoVni(A1)&" USD" (nhớ thêm khoảng cách trong dấu "") **Chú thích: .... Save và turn off cửa sổ Microsoft Visual Basic 6. USD. YEN.nên kết hợp thêm lệnh xử lý text. EURO. đây là câu lệnh để đọc số theo dạng font Unicode hoặc Vni-Times.789 .Địa chỉ A2 gõ: =DocSoUni(A1) hoặc =DocSoVni(A1) *Do đơn vị tiền tệ có thể là VNĐ.Địa chỉ A1 gõ: 123.