Đề tài này cũ rồi, bạn tìm lại những bài trước mà đọc hoặc vào "tìm kiếm". Bạn tham khảo cái này:
Public Function VND(Baonhieu)
Dim ketqua, sotien, nhom, Chu, dich, s1, s2, s3 As String
Dim N, K, vitri As Byte, s As Double
Dim hang, donvi, dem
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")
sotien = Right(Space(15) & sotien, 18)
hang = Array("none", "traêm", "möôi", "khaùc")
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 = "."
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) > 0
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 If
End Function