分享

021.数字金额转中文大写

 河山之家 2022-12-08 发布于新疆

'###############################################################

'函数作用:数字金额转中文大写

'###############################################################

Function DaXie(ByVal Num)

    Application.Volatile True

    Place = "分角元拾佰仟万拾佰仟亿拾佰仟万"

    Dn = "壹贰叁肆伍陆柒捌玖"

    D1 = "整零元零零零万零零零亿零零零万"

    Num = Format(Abs(Num), "###0.00") * 100

    If Num > 999999999999999# Then

        DaXie = "数字超出转换范围!!"

        Exit Function

    End If

    If Num = 0 Then

        DaXie = "零元零分"

        Exit Function

    End If

    If Num < 0 Then FuHao = "(负)"

    NumA = Trim(Str(Num))

    NumLen = Len(NumA)

    For J = NumLen To 1 Step ‐1 ' 数字转换过程

        Temp = Val(Mid(NumA, NumLen ‐ J + 1, 1))

        If Temp <> 0 Then ' 非零数字转换

            NumC = NumC & Mid(Dn, Temp, 1) & Mid(Place, J, 1)

        Else ' 数字零的转换

            If Right(NumC, 1) <> "零" Then

                NumC = NumC & Mid(D1, J, 1)

            Else

                Select Case J ' 特殊数位转换

                    Case 1

                        NumC = Left(NumC, Len(NumC) ‐ 1) & Mid(D1, J, 1)

                    Case 3, 11

                        NumC = Left(NumC, Len(NumC) ‐ 1) & Mid(D1, J, 1) & "零"

                    Case 7

                        If Mid(NumC, Len(NumC) ‐ 1, 1) <> "亿" Then

                            NumC = Left(NumC, Len(NumC) ‐ 1) & Mid(D1, J, 1) & "零"

                        End If

                    Case Else

                End Select

            End If

        End If

    Next

    DaXie = FuHao & Trim(NumC)

End Function

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多