Office中国论坛/Access中国论坛

标题: 数字转换成大写,包括中文和英文 [打印本页]

作者: stone0823    时间: 2008-6-14 14:55
标题: 数字转换成大写,包括中文和英文
以前在Excel中写的两个自定义函数,NumberToEnglish将一个数字转换成英文大写,NumToChi将一个数字转换成中文大写,算法容易理解。现贴上来,请大家多支持。
[attach]56832[/attach]

Public Function NumToChi(Figure) As String
    Dim lFigure1 As Long
    Dim lFigure2 As Long
    Dim lFigure3 As Long

    'Not a figure
    If Not IsNumeric(Figure) Then
        NumToChi = "#NotANumber"
        Exit Function
    End If

    Call InitChiFig

    'Round the figure
    Figure = Round(Figure, 2)

    '0 to 10,000
    If Figure >= 0 And Figure < 10000 Then
        lFigure1 = Int(Figure)
        lFigure2 = (Figure - lFigure1) * 100

        If lFigure2 = 0 Then
            NumToChi = NumToChi_01(lFigure1)
        Else
            NumToChi = NumToChi_01(lFigure1) _
                & "点" & NumToChi_02(lFigure2)
        End If
    End If

    '10,000 to 100,000,000
    If Figure >= 10000 And Figure < 100000000 Then
        lFigure1 = Figure \ 10000
        lFigure2 = Int(Figure - lFigure1 * 10000)
        lFigure3 = (Figure - lFigure1 * 10000 - lFigure2) * 100

        '100
        If lFigure2 = 0 And lFigure3 = 0 Then
            NumToChi = NumToChi_01(lFigure1) & "万"
        End If

        '101
        If lFigure2 = 0 And lFigure3 <> 0 Then
            NumToChi = NumToChi_01(lFigure1) & "万点" _
                & NumToChi_02(lFigure3)
        End If

        '110
        If lFigure2 <> 0 And lFigure3 = 0 Then
            If lFigure2 < 1000 Then
                 NumToChi = NumToChi_01(lFigure1) & "万零" _
                    & NumToChi_01(lFigure2)
            Else
                NumToChi = NumToChi_01(lFigure1) & "万" _
                    & NumToChi_01(lFigure2)
            End If
        End If

        '111
        If lFigure2 <> 0 And lFigure3 <> 0 Then
            If lFigure2 < 1000 Then
                NumToChi = NumToChi_01(lFigure1) & "万零" _
                    & NumToChi_01(lFigure2) & "点" _
                    & NumToChi_02(lFigure3)
            Else
                 NumToChi = NumToChi_01(lFigure1) & "万" _
                    & NumToChi_01(lFigure2) & "点" _
                    & NumToChi_02(lFigure3)
            End If
        End If
    End If

    If Figure >= 100000000 Then '100,000,000
        NumToChi = "#NotDefined"
    End If
End Function



作者: t小宝    时间: 2008-6-14 16:42
谢谢分享,收藏了
作者: fan0217    时间: 2008-6-14 21:26
在EXCEL中数字大写用不上函数的,只需要设置单元格格式就可以了。
作者: ui    时间: 2008-6-14 21:45
是的,有大写金额格式, 中文版就是好
作者: stone0823    时间: 2008-6-14 22:36
有没有发现格式设置中的小数点不能转换,此其一。另,如果要表示为元角分格式,则一定要用函数
作者: goto2008    时间: 2008-7-22 08:42
好用[:50]
作者: 021230ww    时间: 2009-3-10 16:05
谢谢分享,收藏了
作者: yanwei82123300    时间: 2010-2-26 14:56
谢谢分享,收藏了
作者: fjh    时间: 2015-7-14 16:12
感谢分享




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3