Code đổi số sang chữ trong excel

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à 2007
Sử 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,5
A2=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 Then
Ketqua = “Khoâng ñoàng”
Else
If Abs(BaoNhieu) > 1E+15 Then
Ketqua = “Soá quaù lôùn”
Else
If 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, 18-)
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 6
Nhom = Mid(SOTIEN, N * 3 – 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case “000”
If N = 5 Then
Chu = “ñoàng” & Space(1)
Else
Chu = Space(0)
End If
Case “.00”, “,00”
Chu = “chaün”
Case Else
S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
Chu = Space(0): Hang(3) = DONVI(N)
For K = 1 To 3
Dich = Space(0): S = Val(Mid(Nhom, K, 1))
If S > 0 Then
Dich = Dem(S) & Space(1) & Hang(K) & Space(1)
Else
If K = 1 And N > 1 And N < 6 And Val(Mid(SOTIEN, (N – 1) * 3 – 2, 3)) > 0 Then
Dich = “khoâng” & Space(1) & Hang(K) & Space(1)
End If
End If
Select Case K
Case 2 And S = 1
Dich = “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) > 2
Dich = “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) Then
Dich = “leû” & Space(1)
End If
End Select
Chu = Chu & Dich
Next K
End Select
ViTri = InStr(1, Chu, “möôi moät”)
If ViTri > 0 Then Mid(Chu, ViTri, 9) = “möôi moát”
Ketqua = Ketqua & Chu
End If
Next N
End If
End If
VND = 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
 
 
 
 
 
 

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *