在excel中将数字转换为人民币大写的三种方式

上传人:mg****85 文档编号:34021820 上传时间:2018-02-20 格式:DOC 页数:3 大小:35KB
返回 下载 相关 举报
在excel中将数字转换为人民币大写的三种方式_第1页
第1页 / 共3页
在excel中将数字转换为人民币大写的三种方式_第2页
第2页 / 共3页
在excel中将数字转换为人民币大写的三种方式_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《在excel中将数字转换为人民币大写的三种方式》由会员分享,可在线阅读,更多相关《在excel中将数字转换为人民币大写的三种方式(3页珍藏版)》请在金锄头文库上搜索。

1、在 EXCEL 中将数字转换为人民币大写的三种方式鉴于 EXCEL 本身提供将数字转换为大写表示的功能根本不能正常应用在实际投标或财务应用之中,所以要自己建设,暂时找到了三种实现途径,经过测试均功能正常,还有一种是在书上找到的,懒得 KEYIN 进来了,反正也差不多了。方法 1,通过在 EXCEL 表格框(例如在“B1”单元)中直接输入以下公式:=IF(A1“宏”-“VisualBasic 编辑器”,在编辑器窗口中,点击菜单“插入”-“模块”,在出现的窗口中输入以下内容:Function daxie(ByVal Num) 人民币中文大写函数Application.Volatile TruePl

2、ace = 分角元拾佰仟万拾佰仟亿拾佰仟万Dn = 壹贰叁肆伍陆柒捌玖D1 = 整零元零零零万零零零亿零零零万If Num 999999999999999# Then: daxie = 数字超出转换范围!: Exit FunctionIf Num = 0 Then: daxie = 零元零分: Exit FunctionNumA = 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 =

3、NumC & Mid(Dn, temp, 1) & Mid(Place, J, 1)Else 数字零的转换If Right(NumC, 1) 零 Then NumC = NumC & Mid(D1, J, 1)ElseSelect Case J 特殊数位转换Case 1NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1)Case 3, 11NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & 零Case 7If Mid(NumC, Len(NumC) - 1, 1) 亿 ThenNumC = Left(

4、NumC, Len(NumC) - 1) & Mid(D1, J, 1) & 零End IfCase ElseEnd SelectEnd IfEnd IfNextdaxie = (人民币) & FuHao & Trim(NumC)End Function然后切换回 excel,在“A2”单元中输入数字,在“B2”单元中输入:“=DaXie(A2)”,就可看到效果。方法 3,同样是通过 VBA 公式,方法同上,公式如下:Function daxie1(money As String) As String Dim x As String, y As StringConst zimu = .sbqw

5、sbqysbqwsbq 定义位置代码Const letter = 0123456789sbqwy.zjf 定义汉字缩写Const upcase = 零壹贰叁肆伍陆柒捌玖拾佰仟萬億圆整角分 定义大写汉字Dim temp As Stringtemp = moneyIf InStr(temp, .) 0 Then temp = Left(temp, InStr(temp, .) - 1)If Len(temp) 16 Then MsgBox 数目太大,无法换算!请输入一亿亿以下的数字, 64, 错误提示: Exit Function 只能转换一亿亿元以下数目的货币!x = Format(money,

6、 0.00) 格式化货币y = For i = 1 To Len(x) - 3y = y & Mid(x, i, 1) & Mid(zimu, Len(x) - 2 - i, 1)NextIf Right(x, 3) = .00 Theny = y & z *元整Elsey = y & Left(Right(x, 2), 1) & j & Right(x, 1) & f *元*角*分End Ify = Replace(y, 0q, 0) 避免零千(如:40200 肆萬零千零贰佰)y = Replace(y, 0b, 0) 避免零百(如:41000 肆萬壹千零佰)y = Replace(y, 0

7、s, 0) 避免零十(如:204 贰佰零拾零肆)Do While y Replace(y, 00, 0)y = Replace(y, 00, 0) 避免双零(如:1004 壹仟零零肆)Loopy = Replace(y, 0y, y) 避免零億(如:210 億 贰佰壹十零億)y = Replace(y, 0w, w) 避免零萬(如:210 萬 贰佰壹十零萬)y = IIf(Len(x) = 5 And Left(y, 1) = 1, Right(y, Len(y) - 1), y) 避免壹十(如:14 壹拾肆;10 壹拾)y = IIf(Len(x) = 4, Replace(y, 0., )

8、, Replace(y, 0., .) 避免零元(如:20.00 贰拾零圆;0.12 零圆壹角贰分)For i = 1 To 19y = Replace(y, Mid(letter, i, 1), Mid(upcase, i, 1) 大写汉字Nextdaxie1 = (人民币) & yEnd Function切换回 excel,在“A3”单元中输入数字,在“B3”单元中输入:“=DaXie1(A3)”,就可看到效果。实现的效果比较如下:1234.5 (人民币)壹仟贰佰叁拾肆元伍角整 直接公式1234.5 (人民币)壹仟贰佰叁拾肆元伍角整 DaXie(A2)1234.5 (人民币)壹仟贰佰叁拾肆圆伍角零分 DaXie1(A3)

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号