Dear các bạn!
các bạn nào có thể giúp mình chuyển từ số sang chữ bằng tiếng anh mà đơn vị tiền tệ nằm ngay đầu dòng .. ví dụ trong code mình sẽ post lên đây sẽ mặc định trong excel là (719.43 --> seven hundred nineteen US Dollars and fourty three Cents Only) ... bây giờ trong hợp đồng của công ty mình lại viết đơn vị tiền tệ đứng trước , ví dụ là (719.43 --> US Dollars seven hundred nineteen and fourty three Cents Only).. bây giờ mình phải sửa lại mã code của mình lại sao cho để (US Dollars ) luôn đứng trước hả các bạn? và phải có dấu gạch (-) ở đây nữa (US Dollars seven hundred nineteen and fourty - three Cents Only ).... các bạn biết sửa lại mã code sau thì sửa giúp mình nhé.. hoặc không được thì các bạn cho mã code khác cũng được,miễn sao thoã điều kiện mình là được... Sau đây là mã code của mình :
Public Function USD(WhatNumber)
Dim ToRead, NumString, Group, Word As String
Dim I, J As Byte, W, X, Y, Z As Double
Dim FristColum, SecondColum, ReadMetho
If WhatNumber = 0 Then
ToRead = "None"
Else
If Abs(WhatNumber) >= 1E+15 Then
ToRead = "Too long number ???"
Else
FristColum = Array("None", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eightteen", "Nineteen")
SecondColum = Array("None", "None", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety")
ReadMetho = Array("None", "Trillion", "Billion", "Million", "Thousand", "", "Cents Only.")
If WhatNumber < 0 Then
ToRead = "Minus" & Space(1)
Else
ToRead = Space(0)
End If
NumString = Format(Abs(WhatNumber), "##############0.00")
NumString = Right(Space(15) & NumString, 18)
For I = 1 To 6
Group = Mid(NumString, I * 3 - 2, 3)
If Group <> Space(3) Then
Select Case Group
Case "000"
If I = 5 And Abs(WhatNumber) > 1 Then
Word = Space(1)
Else
Word = Space(0)
End If
Case ".00"
Word = "Cents Only"
Case Else
X = Val(Left(Group, 1))
Y = Val(Mid(Group, 2, 1))
Z = Val(Right(Group, 1))
W = Val(Right(Group, 2))
If X = 0 Then
Word = Space(0)
Else
Word = FristColum(X) & Space(1) & "Hundred" & Space(1)
If W > 0 And W < 21 Then
Word = Word & Space(1)
End If
End If
If I = 6 And Abs(WhatNumber) > 1 Then
Word = "And" & Space(1) & Word
End If
If W < 20 And W > 0 Then
Word = Word & FristColum(W) & Space(1)
Else
If W >= 20 Then
Word = Word & SecondColum(Y) & Space(1)
If Z > 0 Then
Word = Word & FristColum(Z) & Space(1)
End If
End If
End If
Word = Word & ReadMetho(I) & Space(1)
End Select
ToRead = ToRead & Word
End If
Next I
End If
End If
USD = UCase(Left(ToRead, 1)) & Mid(ToRead, 2)
End Function