Function KhoiLuong(Number) As String
Dim MyArray
Dim Str
Str = Format(Int(Abs(Number)), "000000000000000000")
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 ")
If Str = "000000000000000000" Then
KhoiLuong = MyArray(0) & "t" & ChrW(7845) & "n"
GoTo KhongTan
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
KhoiLuong = KhoiLuong & 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
KhoiLuong = KhoiLuong & MyArray(12)
End If
Next
KhoiLuong = Trim(Replace(Replace(Replace(Replace(Replace(Replace(KhoiLuong, 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
KhoiLuong = MyArray(29) & KhoiLuong
End If
KhoiLuong = Replace(KhoiLuong & " t" & ChrW(7845) & "n", ", t" & ChrW(7845) & "n", " t" & ChrW(7845) & "n")
KhongTan:
If Abs(Number) - Int(Abs(Number)) > 0 Then
If KhoiLuong = "không t" & ChrW(7845) & "n" Then KhoiLuong = ""
Str = Format((Abs(Number) - Int(Abs(Number))) * 100, "00")
If Left(Str, 1) <> 0 Then KhoiLuong = KhoiLuong & IIf(KhoiLuong = "", "", ", ") & MyArray(Left(Str, 1)) & "t" & ChrW(7841)
If Right(Str, 1) <> 0 Then KhoiLuong = KhoiLuong & IIf(KhoiLuong = "", "", ", ") & MyArray(Right(Str, 1)) & "y" & ChrW(7871) & "n"
End If
KhoiLuong = KhoiLuong & "."
KhoiLuong = UCase(Left(KhoiLuong, 1)) & Mid(KhoiLuong, 2)
End Function