Mỗi tuần một chuyên đề

Chỉnh sửa Hàm code đọc số thành chữ trong Excel (Font VNI)

  • Thread starter tellmemore
  • Ngày gửi
T

tellmemore

Guest
13/4/11
0
0
1
Bình Định
Mình có hàm code đọc số thành chữ trong Excel font chữ VNI hoàn chỉnh rồi nhưng muốn nhờ ACE chỉnh sửa lại code 1 chút là bỏ chữ "chẵn" và "xu" phía sau.

VD1: =vnd(15000000) => Mười lăm triệu đồng chẵn (Sửa lại thành: Mười lăm triệu đồng)

VD2: =vnd(15200600,91) => Mười lăm triệu hai trăm ngàn sáu trăm đồng chín mươi mốt xu (Sửa lại thành: Mười lăm triệu hai trăm ngàn sáu trăm đồng)

Mã code:
Mã:
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") ' 18 coät soá, 2 soá 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 VN = 1 To 6
NhomSo = Mid(SoTien, VN * 3 - 2, 3)
If NhomSo <> Space(3) Then
Select Case NhomSo
Case "000"
If VN = 5 Then
Chu = "ñoàng" & Space(1)
Else
Chu = Space(0)
End If
Case ".00", ",00" ' "Chaám khoâng khoâng" hoaëc "Phaåy khoâng khoâng"
Chu = "chaün"
Case Else
S1 = Left(NhomSo, 1): S2 = Mid(NhomSo, 2, 1): S3 = Right(NhomSo, 1)
Chu = Space(0): Hang(3) = DonVi(VN)
For VK = 1 To 3
Dich = Space(0): VS = Val(Mid(NhomSo, VK, 1))
If VS > 0 Then
Dich = Dem(VS) & Space(1) & Hang(VK) & Space(1)
Else
If VK = 1 And VN > 1 And VN < 6 And Val(Mid(SoTien, (VN - 1) * 3 - 2, 3)) > 0 Then
Dich = "khoâng" & Space(1) & Hang(VK) & Space(1)
End If
End If
Select Case VK
Case 2 And VS = 1
Dich = "möôøi" & Space(1)
Case 3 And VS = 0 And NhomSo <> Space(2) & "0"
Dich = Hang(VK) & Space(1)
Case 3 And VS = 5 And Val(S2) > 0
Dich = "l" & Mid(Dich, 2) ' kyù töï en lôø
Case 2 And VS = 0 And S3 <> "0"
If VN > 1 And Val(Mid(SoTien, (VN - 1) * 3 - 2, 3)) > 0 _
Or (Val(S1) > 0) Then
Dich = "leû" & Space(1)
End If
End Select
Chu = Chu & Dich
Next VK
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 VN
End If
End If
VND = UCase(Left(KetQua, 1)) & Trim(Mid(KetQua, 2))
End Function

Cảm ơn ACE!
 
Khóa học Quản trị dòng tiền

Xem nhiều

Webketoan Zalo OA