VB realizes the conversion function from number to Chinese amount

Private Function NMoneyToSMoney(NMoney As Variant) As String
If IsNumeric(NMoney) = False Then
NMoneyToSMoney = "not a numeric type"
Exit Function
End If
Dim BasicDWString As String, BasicDW() As String
Dim MoneyDWString As String, MoneyDW() As String
Dim MoneyStr As String, ReturnStr As String, TempStr As String
BasicDWString = "cent, angle, circle, ten, hundred, thousand, ten thousand, ten, hundred, thousand, billion, ten, hundred, thousand, trillion, trillion, ten, hundred , Thousand, Ten Thousand, Billion”
MoneyDWString = “Zero, One, Two, Three, Four, Five, Six, Seven, Eight, Nine” BasicDW = Split(
BasicDWString, “,”)
MoneyDW = Split(MoneyDWString, “,”)
MoneyStr = Format(NMoney, “0.00”)
MoneyStr = Replace(MoneyStr, “.”, “”)
StrLen = Len(MoneyStr)
ReturnStr = “”
For x = 0 To StrLen - 1
TempStr = Mid(MoneyStr, StrLen - x, 1)
ReturnStr = MoneyDW(TempStr) & BasicDW(x) & ReturnStr
Next x
ReturnStr = Replace(ReturnStr, "Zero Cent", "")
ReturnStr = Replace(ReturnStr, "Zero Angle ", "")
ReturnStr = Replace(ReturnStr, "Zero", "Zero")
ReturnStr = Replace(ReturnStr, "Zero Hundred", "Zero")
ReturnStr = Replace(ReturnStr, "Zero Thousand", "Zero")
ReturnStr = Replace(ReturnStr, "zero million", "zero")
Do
ReturnStr = Replace(ReturnStr, "zero zero", "zero")
Loop While InStr(ReturnStr, "zero zero") <> 0
ReturnStr = Replace(ReturnStr , "Zero Circle", "Circle")
If Right(ReturnStr, 1) <> "Circle" Then
ReturnStr = Replace(ReturnStr, "Circle", "Zero")
ReturnStr = ReturnStr & "Circle"
End If
ReturnStr = ReturnStr & "all"

  NMoneyToSMoney = ReturnStr

End Function

Private Sub Command1_Click()
Text2 = NMoneyToSMoney(Text1)
End Sub

Guess you like

Origin blog.csdn.net/ty5858/article/details/127348249