Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

大写金额如何显示零角零分

于会明  发表于:2008-02-23 09:38:53  
复制

请教一个问题,当小数为123.00,大写金额如何显示壹佰贰拾叁元零角零分,而不是显示壹佰贰拾叁元整?

 

Top
竹笛 发表于:2008-02-23 09:41:15

Public Function URmb(ByVal Money As Double) As String

Dim Intlen As Integer, i As Integer, strMoney As String

strMoney = Format(Money, "#.##") * 100
Intlen = Len(strMoney)

If Intlen > 14 Then MsgBox "超出范围!": Exit Function

For i = 1 To Intlen
URmb = Mid("零壹贰叁肆伍陆柒捌玖", Mid(strMoney, Intlen + 1 - i, 1) + 1, 1) & Mid("分角元拾佰仟万拾佰仟亿拾佰仟", i, 1) & URmb
Next

End Function

 

 



沈军 发表于:2009-06-07 11:56:03

bamboo列出的函数非常精深,但其中有点问题,如果是300.12元显示的结果是“叁佰零拾零元壹角贰分”,所以无法达到需要达到的结果。

下面的函数也是学习网友的试了非常可以。

 

Public Function rmbdx(je As Currency)
Dim f As String, g As String, a As String, b As String,jns AS String
Dim l As Integer, zl As Integer, z As Integer, v As Integer,U AS Integer
f = "壹贰叁肆伍陆柒捌玖"
g = "元万亿万拾佰仟分角"
jns = LTrim(CStr(Format(je, "###0.00")))
l = Len(jns)
zl = Len(jns)
a = ""
b = ""
Do While l > 0
   z = Val(Mid(jns, zl + 1 - l, 1))
   v = l Mod 4
   u = Int(l / 4)
   If z > 0 Then
      a = a + b + Mid(f, z, 1) + Mid(g, IIf(v = 0, u, v + IIf(u > 0, 4, 7)), 1)
      b = ""
    Else
      a = a + IIf(l = 1, "整", IIf(v = 0, IIf(zl <> 4, Mid(g, IIf(u = 0, u + 1, u), 1), ""), ""))
      b = IIf(v > 0 And zl <> 4, "零", "")
   End If
      l = IIf(l = 4, 2, l - 1)
Loop
rmbdx = IIf(a = "整", "", a)
End Function



总记录:2篇  页次:1/1 9 1 :