Thứ Tư, 30 tháng 3, 2016

VBA Excel - Hàm Đổi Số Thành Chữ

Public Function Chu(sotien) 'Function suu tam
Dim tien, k, n As Integer
Dim Nhom, S1, S2, S3 As String
If Val(sotien) = 0 Then
KetQua = "Khoâng ñoàng"
Else
tien = Format(Round(Abs(sotien), 0), "##############0.00")
tien = Right(Space(15) & tien, 18)
hang1 = Array(" ", "traêm", "möôi", " ")
donvi = Array(" ", "ngaøn tyû", "tyû", "trieäu", "ngaøn", "ñoàng", " ")
DEM = Array(" ", "moät", "hai", "ba", "boán", "naêm", "saùu", "baûy", "taùm", "chín")
For n = 1 To 6
Nhom = Mid(tien, n * 3 - 2, 3)
If Nhom <> Space(3) Then
Select Case Nhom
Case "000"
If n = 5 Then
Chu = "ñoàng" & " "
Else
Chu = ""
End If
Case Else

S1 = Left(Nhom, 1): S2 = Mid(Nhom, 2, 1): S3 = Right(Nhom, 1)
Chu = "": hang1(3) = donvi(n)
For k = 1 To 3
Dich = "": S = Val(Mid(Nhom, k, 1))
If S > 0 Then
Dich = DEM(S) & " " & hang1(k) & " "
Else
If k = 1 And n > 1 And n < 6 And Val(Mid(tien, (n - 1) * 3 - 2, 3)) > 0 Then
Dich = "khoâng" & " " & hang1(k) & " "
End If
End If
Select Case k
Case 2 And S = 1
Dich = "möôøi" & " "
Case 3 And S = 0 And Nhom <> " " & "0"
Dich = hang1(k) & " "
Case 3 And S = 5 And Val(S2) > 0
Dich = "l" & Mid(Dich, 2)
Case 2 And S = 0 And S3 <> "0"
If n > 1 And Val(Mid(tien, (n - 1) * 3 - 2, 3)) > 0 Or (Val(S1) > 0) Then
Dich = "leû" & " "
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
If sotien < 0 Then
Chu = "AÂm " & KetQua
Else
Chu = UCase(Left(KetQua, 1)) & Trim(Mid(KetQua, 2))
End If
End Function

This Is The Oldest Page


EmoticonEmoticon