找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 637|回复: 3

[推荐]:在Excel里自动转换数字大小写

[复制链接]
发表于 2006-1-23 10:38:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
在Excel的使用中,经常的除了要输入用阿拉伯数字表示的小写数字金额外,还要输入相应的中文大写数字。如果手工进行处理,不但输入时很繁琐,而且还很容易出错,经常会造成大小写不相符的情况发生。为此,我们可以利用VBA自定义一个函数,然后再利用这个自定义的函数来实现货币大小的自动转换。这样,不但方便快捷,而且不易出错。具体的操作步骤如下:

        1. 启动Excel。按“Alt+F11”快捷键打开“Visual Basic编辑器”。

        2. 在“Visual Basic编辑器”中,单击“插入”菜单栏中的“模块”命令,插入一个模块。双击左侧“工程”窗口中的“模块1”选项,在窗口右边展开“模块1(代码)”编辑窗口,然后输入如下代码:

Function dx(q)
Dim Cur As Long, yuan As Long
Dim Jiao As Integer, Fen As Integer
Dim CnYuan As String, CnJiao As String, CnFen As String
If q = "" Then
dx = 0
Exit Function
End If
Cur = Round(q * 100)
yuan = Int(Cur / 100)
Jiao = Int(Cur / 10) - yuan * 10
Fen = Cur - yuan * 100 - Jiao * 10
CnYuan = Application.WorksheetFunction.Text(yuan, "[DBNum2]")
CnJiao = Application.WorksheetFunction.Text(Jiao, "[DBNum2]")
CnFen = Application.WorksheetFunction.Text(Fen, "[DBNum2]")
dx = CnYuan & "元" & "整"
d1 = CnYuan & "元"
If Fen <> 0 And Jiao <> 0 Then
dx = d1 & CnJiao & "角" & CnFen & "分"
If yuan = 0 Then
dx = CnJiao & "角" & CnFen & "分"
End If
End If
If Fen = 0 And Jiao <> 0 Then
dx = d1 & CnJiao & "角" & "整"
If yuan = 0 Then
dx = CnJiao & "角" & "整"
End If
End If
If Fen <> 0 And Jiao = 0 Then
dx = d1 & CnJiao & CnFen & "分"
If yuan = 0 Then
dx = CnFen & "分"
End If
End If
End Function

   输入完成后,关闭“Visual Basic编辑器”返回工作表。现在,我们可测试一下这个函数。首先,在A1单元格中输入一个小写数字的金额,例如123456.78,然后,在A2单元格中输入公式:=dx(A1),确认后即可将A1所表示的小写数字金额转换为大写的数字金额,并在A2单元格中显示出来。怎么样,方便吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2006-1-23 11:47:11 | 显示全部楼层
不错,谢谢楼主分享。虽然已有不少解决方法——比如用函数公式,呵呵,嫌麻烦。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-1-26 12:34:17 | 显示全部楼层
不知怎么回事,超过一定数后如2KW程序会变成#VALUE!,好象还有BUG,希楼上改进。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-2-7 16:45:38 | 显示全部楼层
好像超过9位就会出错,还有怎么样使它成为excell的一个函数呢,就是在其他excell也能用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-25 08:41 , Processed in 0.260327 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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