Private Function NMoneyToSMoney ( NMoney As Variant ) As String If IsNumeric ( NMoney ) = False Then NMoneyToSMoney = "不是数字类型" 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 = "分,角,圆,拾,佰,仟,万,拾,佰,仟,亿,拾,佰,仟,万亿,兆,拾,佰,仟,万,亿" MoneyDWString = "零,壹,贰,叁,肆,伍,陆,柒,捌,玖" 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, "零分", "" ) ReturnStr = Replace ( ReturnStr, "零角", "" ) ReturnStr = Replace ( ReturnStr, "零拾", "零" ) ReturnStr = Replace ( ReturnStr, "零佰", "零" ) ReturnStr = Replace ( ReturnStr, "零仟", "零" ) ReturnStr = Replace ( ReturnStr, "零万", "零" ) Do ReturnStr = Replace ( ReturnStr, "零零", "零" ) Loop While InStr ( ReturnStr, "零零" ) <> 0 ReturnStr = Replace ( ReturnStr, "零圆", "圆" ) If Right ( ReturnStr, 1 ) <> "圆" Then ReturnStr = Replace ( ReturnStr, "圆", "零" ) ReturnStr = ReturnStr & "圆" End If ReturnStr = ReturnStr & "整" NMoneyToSMoney = ReturnStrEnd Function