关于造价审核书中审核金额人民币大写的正确姿势

大家在造价审核时,Excel中默认的人民币大写公式显示是下面的样子:

但根据正规的财务写法,其实应该是下面的样子:

那么如何才能做到正确的写法并且大小写金额联动呢,其实这个问题在Excel或WPS中并不太好解决,需要利用到一点VBA的知识。操作如下:

在 Excel 中将数值金额转换为中文大写金额,可以通过自定义函数来实现。下面是一个使用 VBA(Visual Basic for Applications)来编写自定义函数的方法,将数值金额转换为中文大写金额。

  1. 打开你的 Excel 文件。
  2. 按 Alt + F11 打开 VBA 编辑器。
  3. 在 VBA 编辑器中,选择 插入 -> 模块 来插入一个新的模块。
  4. 复制以下代码并粘贴到新模块中:
Function NumToRMB(amt As Double) As String
    Dim StrValue As String
    Dim Units As Variant
    Dim Digits As Variant
    Dim i As Integer
    Dim StrTemp As String
    Dim isNeg As Boolean

    ' 判断负数
    If amt < 0 Then
        isNeg = True
        amt = Abs(amt)
    End If

    StrValue = Format(amt, "0.00")
    Units = Array("", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万", "拾", "佰", "仟")
    Digits = Array("零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖")

    Dim StrInt As String
    Dim StrDec As String
    Dim PosDot As Integer

    PosDot = InStr(StrValue, ".")
    If PosDot > 0 Then
        StrInt = Mid(StrValue, 1, PosDot - 1)
        StrDec = Mid(StrValue, PosDot + 1)
    Else
        StrInt = StrValue
        StrDec = ""
    End If

    StrTemp = ""
    For i = 1 To Len(StrInt)
        StrTemp = StrTemp & Digits(Mid(StrInt, i, 1)) & Units(Len(StrInt) - i)
    Next i

    StrTemp = Replace(StrTemp, "零拾", "零")
    StrTemp = Replace(StrTemp, "零佰", "零")
    StrTemp = Replace(StrTemp, "零仟", "零")
    StrTemp = Replace(StrTemp, "零万", "万")
    StrTemp = Replace(StrTemp, "零亿", "亿")
    StrTemp = Replace(StrTemp, "零零零零", "零")
    StrTemp = Replace(StrTemp, "零零零", "零")
    StrTemp = Replace(StrTemp, "零零", "零")

    If Right(StrTemp, 1) = "零" Then
        StrTemp = Left(StrTemp, Len(StrTemp) - 1)
    End If

    If StrDec <> "" Then
        StrTemp = StrTemp & "元" & Digits(Mid(StrDec, 1, 1)) & "角" & Digits(Mid(StrDec, 2, 1)) & "分"
    Else
        StrTemp = StrTemp & "元整"
    End If

    If isNeg Then
        StrTemp = "负" & StrTemp
    End If

    NumToRMB = StrTemp
End Function

5.关闭 VBA 编辑器,返回到你的 Excel 工作表。

6.在 Excel 中,使用自定义函数 NumToRMB 将数值转换为中文大写金额。例如,如果你的数值在 A1 单元格中,你可以在 B1 单元格中输入:

=NumToRMB(A1)

这样,Excel 将自动把 A1 单元格中的数值(如 294632.80)转换为中文大写金额(贰拾玖万肆仟陆佰叁拾贰元捌角)。

你可以根据需要修改和扩展这个函数来适应具体的需求。

0

评论0

没有账号?注册  忘记密码?