|
楼主 |
发表于 2016-12-9 12:53
|
显示全部楼层
- Function upCurrency(num) '小写金额转大写
- Dim Curr$, CString$, i%, CurrLength%, str1$, str2$, str3$
- Curr = Format(Abs(Val(num)) * 100, "0")
- CurrLength = Len(Curr)
- For i = 0 To CurrLength - 1
- str1 = Mid(Curr, CurrLength - i, 1)
- str2 = Mid("零壹贰叁肆伍陆柒捌玖", str1 + 1, 1)
- str3 = Mid("分角元拾佰仟万拾佰仟亿拾佰仟", i + 1, 1)
- CString = str2 & str3 & CString
- Next
- With CreateObject("VBScript.RegExp")
- .Global = True
- .Pattern = "(零[仟佰拾角分]+)+零?"
- CString = .Replace(CString, "零")
- .Pattern = "零?([亿万元])(零万)?|^零$"
- CString = .Replace(CString, "$1")
- .Pattern = "零$"
- CString = .Replace(CString, "整")
- End With
- upCurrency = IIf(num < 0, "负", "") & CString
- End Function
但是实在是好东西,圆、元、块、毛 的几种大写写法都可以转换。
- Function DxToN(ss) '大写金额转小写
- For i% = 1 To 9
- ss = Replace(ss, Mid("壹贰叁肆伍陆柒捌玖", i, 1), i)
- ss = Replace(ss, Mid("一二三四五六七八九", i, 1), i)
- Next
- For i% = Len(ss) To 1 Step -1
- s$ = Mid$(ss, i, 1)
- X% = InStr("分角圆拾佰仟万拾佰仟亿拾佰仟兆", s)
- If X = 0 Then X% = InStr("分毛元十百千万十百千亿十百千兆", s)
- If X = 0 Then X% = InStr("分毛块十百千万十百千亿十百千兆", s)
- If X Then j% = IIf(j% < X, X, ((j - 3) \ 4) * 4 + X)
- If Val(s) Then m# = m# + (s & String(j - 1, "0")) / 100
- Next
- DxToN = Round(m, 2)
- If InStr(ss, "-") Or InStr(ss, "负") Then DxToN = -DxToN
- End Function
|
评分
-
查看全部评分
|