谁知道如何用vb编写人民币小写变成大写的程序.

解决方案 »

  1.   

    '**************************************************************************
    '函数用途:将数字串转换为中文金额字符串
    '入口参数: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 StringIf Not IsNumeric(Digital) Then
        ConvToMoney = ""
        Exit Function
    End IfIf Val(Format(Digital)) < 0 Then
        Digital = Trim(Str(Abs(Val(Format(Digital)))))
        laststr = "整(负)"
    Else
        laststr = "整"
    End IfstrChi(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 IflenStr = 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 StringFor I = 1 To Len(stmp)
      stmprv = Mid(stmp, I, 1) & stmprv
    NextFor 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
      

  2.   


    debug.print ConvToMoney("123456.23")
    壹拾贰万叁仟肆佰伍拾陆元贰角叁分整真标准啊!
      
    *****************************************************************************
    欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码) 
    http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html