'壹贰叁肆伍陆柒捌玖零 Dim str1 As StringPrivate Sub Form_Load() str1 = "123,456,789.12" Label1.Caption = changetochinese(str1) End SubPrivate Function changetochinese(str As String) As String Dim TempStr As String Dim IsZero As Boolean For i = 1 To Len(str)
If Mid(str, i, 1) = "1" Then TempStr = TempStr & "壹": IsZero = False If Mid(str, i, 1) = "2" Then TempStr = TempStr & "贰": IsZero = False If Mid(str, i, 1) = "3" Then TempStr = TempStr & "叁": IsZero = False If Mid(str, i, 1) = "4" Then TempStr = TempStr & "肆": IsZero = False If Mid(str, i, 1) = "5" Then TempStr = TempStr & "伍": IsZero = False If Mid(str, i, 1) = "6" Then TempStr = TempStr & "陆": IsZero = False If Mid(str, i, 1) = "7" Then TempStr = TempStr & "柒": IsZero = False If Mid(str, i, 1) = "8" Then TempStr = TempStr & "捌": IsZero = False If Mid(str, i, 1) = "9" Then TempStr = TempStr & "玖": IsZero = False If Mid(str, i, 1) = "0" And IsZero = False Then TempStr = TempStr & "零": IsZero = True If i = 1 And IsZero = False Then TempStr = TempStr & "亿" If i = 2 And IsZero = False Then TempStr = TempStr & "千" If i = 3 And IsZero = False Then TempStr = TempStr & "百" If i = 5 And IsZero = False Then TempStr = TempStr & "十" If i = 6 And IsZero = False Then TempStr = TempStr & "万" If i = 7 And IsZero = False Then TempStr = TempStr & "千" If i = 9 And IsZero = False Then TempStr = TempStr & "百" If i = 10 And IsZero = False Then TempStr = TempStr & "十" If Left(str, 2) = "00" Then Exit For Next i If Right(TempStr, 1) = "零" Then TempStr = Left(TempStr, Len(TempStr) - 1) If Int(Right(str, 2)) = 0 Then TempStr = TempStr & "元整" Else TempStr = Left(TempStr, Len(TempStr) - 2) & "元" & Left(Right(TempStr, 2), 1) & "角" & Right(TempStr, 1) & "分" End If changetochinese = TempStr End Function
1,先写一个函数根据数字返回汉字
2,然后通过for语句依次调用上面函数
用MID取字符
Dim str1 As StringPrivate Sub Form_Load()
str1 = "123,456,789.12"
Label1.Caption = changetochinese(str1)
End SubPrivate Function changetochinese(str As String) As String
Dim TempStr As String
Dim IsZero As Boolean
For i = 1 To Len(str)
If Mid(str, i, 1) = "1" Then TempStr = TempStr & "壹": IsZero = False
If Mid(str, i, 1) = "2" Then TempStr = TempStr & "贰": IsZero = False
If Mid(str, i, 1) = "3" Then TempStr = TempStr & "叁": IsZero = False
If Mid(str, i, 1) = "4" Then TempStr = TempStr & "肆": IsZero = False
If Mid(str, i, 1) = "5" Then TempStr = TempStr & "伍": IsZero = False
If Mid(str, i, 1) = "6" Then TempStr = TempStr & "陆": IsZero = False
If Mid(str, i, 1) = "7" Then TempStr = TempStr & "柒": IsZero = False
If Mid(str, i, 1) = "8" Then TempStr = TempStr & "捌": IsZero = False
If Mid(str, i, 1) = "9" Then TempStr = TempStr & "玖": IsZero = False
If Mid(str, i, 1) = "0" And IsZero = False Then TempStr = TempStr & "零": IsZero = True
If i = 1 And IsZero = False Then TempStr = TempStr & "亿"
If i = 2 And IsZero = False Then TempStr = TempStr & "千"
If i = 3 And IsZero = False Then TempStr = TempStr & "百"
If i = 5 And IsZero = False Then TempStr = TempStr & "十"
If i = 6 And IsZero = False Then TempStr = TempStr & "万"
If i = 7 And IsZero = False Then TempStr = TempStr & "千"
If i = 9 And IsZero = False Then TempStr = TempStr & "百"
If i = 10 And IsZero = False Then TempStr = TempStr & "十"
If Left(str, 2) = "00" Then Exit For
Next i
If Right(TempStr, 1) = "零" Then TempStr = Left(TempStr, Len(TempStr) - 1)
If Int(Right(str, 2)) = 0 Then
TempStr = TempStr & "元整"
Else
TempStr = Left(TempStr, Len(TempStr) - 2) & "元" & Left(Right(TempStr, 2), 1) & "角" & Right(TempStr, 1) & "分"
End If
changetochinese = TempStr
End Function