'**************************************************************************
'函数用途:将数字串转换为中文金额字符串
'入口参数:Digital 要转换的数字串
'返回参数:中文金额字符串
'限制:Digital小于1亿
'*************************************************************************
Public Function ConvToMoney(ByVal Digital As String) As String
Dim strChi(11), strDig(10) As String
Dim stmp, rsStr As String
Dim lenStr As Byte
Dim laststr As String
If Not IsNumeric(Digital) Then
ConvToMoney = ""
Exit Function
End If
If Val(Format(Digital)) < 0 Then
Digital = Trim(Str(Abs(Val(Format(Digital)))))
laststr = "整(负)"
Else
laststr = "整"
End If
strChi(0) = "分"
strChi(1) = "角"
strChi(2) = "元"
strChi(3) = "拾"
strChi(4) = "佰"
strChi(5) = "仟"
strChi(6) = "万"
strChi(7) = "拾"
strChi(8) = "佰"
strChi(9) = "仟"
strChi(10) = "亿"
strDig(0) = "零"
strDig(1) = "壹"
strDig(2) = "贰"
strDig(3) = "叁"
strDig(4) = "肆"
strDig(5) = "伍"
strDig(6) = "陆"
strDig(7) = "柒"
strDig(8) = "捌"
strDig(9) = "玖"
stmp = Digital
If (Len(stmp) = 0) Or (Len(stmp) > 11) Then
ConvToMoney = ""
Exit Function
End If
stmp = Format(stmp, "########.00")
If Len(stmp) > 11 Then
ConvToMoney = ""
Exit Function
End If
lenStr = Len(stmp)
rsStr = strDig(Val(Mid(stmp, lenStr - 1, 1))) & strChi(1) & strDig(Val(Right(stmp, 1))) & strChi(0)
stmp = Left(stmp, Len(stmp) - 3)
Dim I, d As Byte
Dim blnZero As Boolean
Dim stmprv, dstr As String
For I = 1 To Len(stmp)
stmprv = Mid(stmp, I, 1) & stmprv
Next
For I = 1 To Len(stmprv)
d = Val(Mid(stmprv, I, 1))
If d = 0 Then
If I = 1 Or I = 5 Then
dstr = strChi(I + 1)
Else
If Not blnZero Then
dstr = strDig(0)
Else
dstr = ""
End If
End If
blnZero = True
Else
dstr = strDig(d) & strChi(I + 1)
blnZero = False
End If
rsStr = dstr + rsStr
Next
ConvToMoney = rsStr & laststr
End Function