水晶报表 使用公式 转化大写

这篇博客介绍了如何使用VBA代码将数字转化为大写的汉字,以应用于水晶报表中。通过定义汉字和位置代码,实现了数字到大写金额的转换,并处理了各种特殊情况进行格式化,例如避免出现多余的“零”和不合适的单位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dim x As String
Dim y As String
Dim zimu as String
Dim temp As String
Dim letter As String
Dim upcase As String
Dim i as Number
dim j as Number

  zimu = ".sbqwsbqysbqwsbq" '定义位置代码
  letter = "0123456789sbqwy.zjf" '定义汉字缩写
  upcase = "零壹贰叁肆伍陆柒捌玖拾佰仟万亿元整角分" '定义大写汉字

  temp = ToText ({View_Sale_Instead_Pay_Head.Pay_Amount})
  temp = Replace(temp,",","")
  x=temp
  y=""

        For i = 1 To Len(x) - 3
                y = y & Mid(x, i, 1) & Mid(zimu, Len(x) - 2 - i, 1)
        Next
        If Right(x, 3) = ".00" Then
                y = y & "z"          '***元整
        Else
                y = y & Left(Right(x, 2), 1) & "j" & Right(x, 1) & "f"     '*元*角*分
        End If
        y = Replace(y, "0q", "0") '避免零千(如:40200肆萬零千零贰佰)
        y = Replace(y, "0b", "0") '避免零百(如:41000肆萬壹千零佰)
        y = Replace(y, "0s", "0") '避免零十(如:204贰佰零拾零肆)
       
        Do While y <> Replace(y, "00", "0")
                y = Replace(y, "00", "0") '避免双零(如:1004壹仟零零肆)
        Loop
       
        y = Replace(y, "0y", "y") '避免零億(如:210億     贰佰壹十零億)
        y = Replace(y, "0w", "w") '避免零萬(如:210萬     贰佰壹十零萬)
       
        '避免壹十(如:14壹拾肆;10壹拾)
        If Len(x) = 5 And Left(y, 1) = "1" Then
                y = Right(y, Len(y) - 1)
        End If
       
        '避免零元(如:20.00贰拾零圆;0.12零圆壹角贰分)
        If Len(x) = 4 Then
                y = Replace(y, "0.", "")
        End If
       
        For i = 1 To 19
                y = Replace(y, Mid(letter, i, 1), Mid(upcase, i, 1)) '大写汉字
        Next i
        'Com_NumberToCapital = y
        'Msgbox Com_NumberToCapital, 64, "错误提示"
       
        y = Replace(y, "零元", "元")
        y = Replace(y, "零角", "零")
        y = Replace(y, "零分", "")

formula = "人民币" & y

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值