Tải Add-in về để cài vào máy: Account Help Thiết lập cài Add-in với từng phiên bản office khác nhau 2003 và 2007Sử dụng:gõ hàm =VND(giá trị số, loại font(1/2/3-mặc định3), “loại đơn vị tiền tệ”,”giá trị số lẻ”) để đổi tiếng việt= USD để đổi tiếng anh
VD: A1=30,5A2=VND(A1,,”USD”,”cent”) --> ba mươi USD năm mươi CENT
Ngoài ra có thể tham khảo code của chuyển đổi font khác ở bên dưới
Public Function VND(BaoNhieu)If Val(BaoNhieu) = 0 ThenKetqua = “Khoâng ñoàng”ElseIf Abs(BaoNhieu) > 1E+15 ThenKetqua = “Soá quaù lôùn”ElseIf BaoNhieu < 0 Then Ketqua = “Tröø” & Space(1) Else Ketqua = Space(0)SOTIEN = Format(Abs(BaoNhieu), “###############0.00”) ’18coät soá 2soá leûSOTIEN = Right(Space(15) & SOTIEN, 1
Hang = Array(“None”, “traêm”, “möôi”, “gì ñoù”)DONVI = Array(“None”, “ngaøn tyû”, “tyû”, “trieäu”, “ngaøn”, “ñoàng”, “xu”)Dem = Array(“None”, “moât”, “hai”, “ba”, “boán”, “naêm”, “saùu”, “baûy”, “taùm”, “chín”)For N = 1 To 6Nhom = Mid(SOTIEN, N * 3 – 2, 3)If Nhom <> Space(3) ThenSelect Case NhomCase “000”If N = 5 ThenChu = “ñoàng” & Space(1)ElseChu = Space(0)End IfCase “.00”, “,00”Chu = “chaün”Case ElseS1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)Chu = Space(0): Hang(3) = DONVI(N)For K = 1 To 3Dich = Space(0): S = Val(Mid(Nhom, K, 1))If S > 0 ThenDich = Dem(S) & Space(1) & Hang(K) & Space(1)ElseIf K = 1 And N > 1 And N < 6 And Val(Mid(SOTIEN, (N – 1) * 3 – 2, 3)) > 0 ThenDich = “khoâng” & Space(1) & Hang(K) & Space(1)End IfEnd IfSelect Case KCase 2 And S = 1Dich = “möôøi” & Space(1)Case 3 And S = 0 And Nhom <> Space(2) & “0”Dich = Hang(K) & Space(1)Case 3 And S = 5 And Val(S2) > 2Dich = “l” & Mid(Dich, 2)Case 2 And S = 0 And S3 <> “0”If N > 1 And Val(Mid(SOTIEN, (N – 1) * 3 – 2, 3)) > 0 Or (Val(S1) > 0) ThenDich = “leû” & Space(1)End IfEnd SelectChu = Chu & DichNext KEnd SelectViTri = InStr(1, Chu, “möôi moät”)If ViTri > 0 Then Mid(Chu, ViTri, 9) = “möôi moát”Ketqua = Ketqua & ChuEnd IfNext NEnd IfEnd IfVND = UCase(Left(Ketqua, 1)) & Trim(Mid(Ketqua, 2))End Function
HÀM ĐỔI SỐ SANG CHỮ
Option Explicit
Function VND(conso) As String
Dim S09, Lop3, Dau, Vt, S123, S1, S2, S3, LOP2, CHR1, CHR2, CHR3 As String
Dim Sonhan, Sochuso, I, Docso, Lop, N1, N2, N3, Baso As Long
‘………………………….SO TU 1 DEN 9 ………………………………………………….
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”)
‘…………………………..CHUOI NGHIN -TRIEU-TY………………………………………………………………………………………….
If Right(conso, 3) = “000” Or Len(conso) >= 13 Then Lop3 = Array(“”, ” Tri” & ChrW(7879) & “u”, ” Ngh” & ChrW(236) & “n”, ” T” & ChrW(7927) & “”) Else _
Lop3 = Array(“”, ” Tri” & ChrW(7879) & “u,”, ” Ngh” & ChrW(236) & “n,”, ” T” & ChrW(7927) & “,”)
‘…………………………..NGHIN TY-MUOI NGHIN TY-TRAM NGHIN TY……………………………………………………………………………..Or Len(conso) >= 13
‘If conso = 10 ^ 12 Or conso = 10 ^ 13 Or conso = 10 ^ 14 Or conso = 10 ^ 15 Then LOP2 = ” T” & ChrW(7927) & ” ” Else LOP2 = ” T” & ChrW(7927) & “,”
If Abs(Right(conso, 11)) > 0 Then LOP2 = ” T” & ChrW(7927) & “, ” Else LOP2 = ” T” & ChrW(7927) & “”
‘…………………………………………………………………………………………………………………………………………..
If Abs(conso) > 999999999999999# Then
MsgBox “SO QUÁ LON”
VND = “SO QUÁ LON”
Exit Function
End If
If Trim(conso) = “” Then
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 = “”
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 = LOP2 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 = ” 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 = Docso & S123
If I > Len(conso) Then Exit Do
Loop
If Docso = “” Then VND = “Kh” & ChrW(244) & “ng” Else VND = Dau & Trim(Docso) & ” ” & ChrW(272) & ChrW(7891) & “ng.”
Else
VND = conso
End If
End Function