设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2533|回复: 8
打印 上一主题 下一主题

[模块/函数] 数字转换成大写,包括中文和英文

[复制链接]
跳转到指定楼层
1#
发表于 2008-6-14 14:55:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以前在Excel中写的两个自定义函数,NumberToEnglish将一个数字转换成英文大写,NumToChi将一个数字转换成中文大写,算法容易理解。现贴上来,请大家多支持。


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


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅

点击这里给我发消息

2#
发表于 2008-6-14 16:42:23 | 只看该作者
谢谢分享,收藏了
3#
发表于 2008-6-14 21:26:19 | 只看该作者
在EXCEL中数字大写用不上函数的,只需要设置单元格格式就可以了。
4#
发表于 2008-6-14 21:45:22 | 只看该作者
是的,有大写金额格式, 中文版就是好
5#
 楼主| 发表于 2008-6-14 22:36:30 | 只看该作者
有没有发现格式设置中的小数点不能转换,此其一。另,如果要表示为元角分格式,则一定要用函数
6#
发表于 2008-7-22 08:42:41 | 只看该作者
好用[:50]
7#
发表于 2009-3-10 16:05:16 | 只看该作者
谢谢分享,收藏了
8#
发表于 2010-2-26 14:56:13 | 只看该作者
谢谢分享,收藏了
9#
发表于 2015-7-14 16:12:27 | 只看该作者
感谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-6 20:40 , Processed in 0.113625 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表