Thứ Ba , 21 Tháng 10 2025, 23:02 Chiều

Chuyển đổi số thành chữ

Việc chuyển đổi số thành chữ tự động trong các hóa đơn, chứng từ trở thành điều không thể thiếu đối với người làm việc văn phòng, kế toán. Sau đây là cách để có thể chuyển số thành chữ trong Excel tự động cực kỳ đơn giản.

1. Truy cập Trình soạn thảo Visual Basic (VBE) nhấn Alt + F11.

2. Chèn module bằng cách nhấn Insert > Module

Số tiền viết bằng chữ (đồng Việt Nam)

Copy đoạn mã sau dán vào module:

Public Function DocSo_VND(conso) As String
s09 = Array("", " m" & ChrW(7897) & "t", " hai", " ba", " b" & ChrW(7889) & "n", " n" & _
ChrW(259) & "m", " s" & ChrW(225) & "u", " b" & ChrW(7843) & "y", " t" & ChrW(225) & "m", " ch" & ChrW(237) & "n")
lop3 = Array("", " tri" & ChrW(7879) & "u", " ngh" & ChrW(236) & "n", " t" & ChrW(7927) & "")
If Trim(conso) = "" Then
DocSo_VND = ""
ElseIf IsNumeric(conso) = True Then
If conso < 0 Then dau = ChrW(226) & "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_VND = ""
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_VND <> "" And lop = 3 And Len(conso) - I > 2 Then s123 = " t" & ChrW(7927) Else s123 = ""
Else
If n1 = 0 Then
If DocSo_VND = "" 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 = " l" & ChrW(7867)
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)
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_VND = DocSo_VND & s123
If I > Len(conso) Then Exit Do
Loop
If DocSo_VND = "" Then
DocSo_VND = "kh" & ChrW(244) & "ng"
Else: DocSo_VND = Trim(DocSo_VND): DocSo_VND = dau & UCase(Left(DocSo_VND, 1)) + Right(DocSo_VND, Len(DocSo_VND) - 1)
End If
Else
DocSo_VND = conso
End If
'------------------------------------------------------
If Right(DocSo_VND, 1) = "," Then
DocSo_VND = Mid(DocSo_VND, 1, Len(DocSo_VND) - 1) & " " & ChrW$(273) & ChrW$(7891) & "ng."
Else
DocSo_VND = DocSo_VND & " " & ChrW$(273) & ChrW$(7891) & "ng."
End If
End Function

Sau đó trở về bảng tính Excel. Nhập công thức với cú pháp: =DocSo_VND(number)

Số tiền viết bằng chữ (Dollars)

Tương tự như trên, ta cũng Insert > Module. Sau đó copy đoạn mã dán vào:

Function USD(ByVal MyNumber)
Dim Dollars, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " Thousand "
Place(3) = " Million "
Place(4) = " Billion "
Place(5) = " Trillion "
' String representation of amount.
MyNumber = Trim(Str(MyNumber))
' Position of decimal place 0 if none.
DecimalPlace = InStr(MyNumber, ".")
' Convert cents and set MyNumber to dollar amount.
If DecimalPlace > 0 Then
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & "00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case Dollars
Case ""
Dollars = "No Dollars"
Case "One"
Dollars = "One Dollar"
Case Else
Dollars = Dollars & " Dollars"
End Select
Select Case Cents
Case ""
Cents = " and No Cents"
Case "One"
Cents = " and One Cent"
Case Else
Cents = " and " & Cents & " Cents"
End Select
USD = Dollars & Cents
End Function

Sau đó trở về bảng tính Excel. Nhập công thức với cú pháp: =USD(number)