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)