鱼人术士卡组:在Excel2000忠如何将数字转换成人民币大写

来源:百度文库 编辑:高考问答 时间:2024/05/05 08:09:04
在Excel2000忠如何将数字转换成人民币大写

我给你一个方法将此复制下来粘贴到Excel单元格内就可以了。
=IF(ROUND(A5,2)<0,"无效数值","人民币"&IF(ROUND(A5,2)=0,"零元",IF(ROUND(A5,2)<1,"",TEXT(INT(ROUND(A5,2)),"[dbnum2]")&"元")&IF(INT(ROUND(A5,2)*10)-INT(ROUND(A5,2))*10=0,IF(INT(ROUND(A5,2))*(INT(ROUND(A5,2)*100)-INT(ROUND(A5,2)*10)*10)=0,"","零"),TEXT(INT(ROUND(A5,2)*10)-INT(ROUND(A5,2))*10,"[dbnum2]")&"角")&IF((INT(ROUND(A5,2)*100)-INT(ROUND(A5,2)*10)*10)=0,"整",TEXT((INT(ROUND(A5,2)*100)-INT(ROUND(A5,2)*10)*10),"[dbnum2]")&"分")))

还有以下方法:Excel将小写金额转换成人民币的大写金额

1、如何自定义:

打开EXCEL,新建一个文件Book1,按ALT+F11进入VBA编程环境,选中这个BOOK1文件,插入模块,将下面的源代码复制到右边的模块代码区内,然后将此BOOK1保存,保存类型一定选加载宏,文件名嘛可自由发挥,我就填"中文大写",确定OK!然后回到EXCEL,工具--加载宏-找到"中文大写",打勾确定,我们这个自定义函数就可以象内置函数样使用了!--->=rmbdx(123456.78),爽吧!

2、例子:

A、直接在函数内输入数值的(请注意参数的用法,默认用法是不用输入)
=rmbdx(123456.78)--->壹拾贰万叁仟肆佰伍拾陆元柒角捌分
=rmbdx(123456.78,0)--->壹拾贰万叁仟肆佰伍拾陆元柒角捌分
=rmbdx(123456.78,1)--->壹拾贰万叁仟肆佰伍拾陆元柒角捌分
=rmbdx(56.78)--->伍拾陆元柒角捌分
=rmbdx(0.78)--->柒角捌分
=rmbdx(0.784)--->柒角捌分
=rmbdx(0.785,1)--->柒角玖分
=rmbdx(0.02,1)--->贰分
B、引用某单元格数值进行转换的
假设你的D3单元格的数据(也可以是求和或其它公式得出的结果)需要转换,大写格式放在D4单元格,则D4输入公式:=rmbdx(d3)即可
C、其它形如=rmbdx(SUM(C4:C6))的也可以,用法象内置函数,请灵活使用

3、源代码:

Functionrmbdx(value,Optionalm=0)
’中文大写源代码,By对面男孩、redwin
’支持负数,支持小数点后的第三位数是否进行四舍五入处理
’默认参数为0,即不将小数点后的第三位数进行四舍五入处理
’2002-10-11--2002-10-13
OnErrorResumeNext
Dima
DimjfAsString’定义角分位
Dimj’定义角位
Dimf’定义分位
Ifvalue<0Then’处理正负数的情况
a="负"
Else
a=""
EndIf

IfIsNumeric(value)=FalseThen’判断待转换的value是否为数值
rmbdx="需转换的内容非数值"
Else
value=Abs(CCur(value))
’当参数m不输入(默认为0)或为0时,小数点后的第三数不进行四舍五入处理
’当参数m为1或其它数值时,小数点后的第三数进行四舍五入处理
Ifm=0Then
jf=Fix((value-Fix(value))*100)
value=Fix(value)+jf/100
Else’厘位进行四舍五入实践很少用到,但还是要照顾到
value=Application.WorksheetFunction.Round(value,2)’-->这句是关键!只用round有bug
jf=Round((value-Fix(value))*100,0)
EndIf
Ifvalue=0Orvalue=""Then’当待转换数值为0或空时,不进行转换
rmbdx=""
Else
strrmbdx=Application.WorksheetFunction.Text(Int(value),"[DBNum2]")&"元"’转换整数位
IfInt(value)=0Then
strrmbdx=""
EndIf
IfInt(value)<>valueThen
Ifjf>9Then’判断小数位
j=Left(jf,1)
f=Right(jf,1)
Else
j=0
f=jf
EndIf

Ifj<>0Andf<>0Then’角分位都有时
jf=Application.WorksheetFunction.Text(j,"[DBNum2]")&"角"_
&Application.WorksheetFunction.Text(f,"[DBNum2]")&"分"
Else
’处理出现零几分的情况
IfInt(value)=0Andj=0Andf<>0Then
jf=Application.WorksheetFunction.Text(f,"[DBNum2]")&"分"
Else
Ifj=0Then’有分无角时
jf="零"&Application.WorksheetFunction.Text(f,"[DBNum2]")&"分"
Else
Iff=0Then’有角无分时
jf=Application.WorksheetFunction.Text(j,"[DBNum2]")&"角整"
EndIf
EndIf
EndIf
EndIf
strrmbdx=strrmbdx&jf’组装
Else
strrmbdx=strrmbdx&"整"
EndIf

rmbdx=a&strrmbdx’最后成型了,各位MM满意了吧
EndIf
EndIf
EndFunction

如果仅是"×××圆"的表述形式,则向你推荐一种简单的方法:
选中要转换成大写的数据列;
首先在Excel中,执行“格式/单元格/数字”命令;
然后在“分类”中选中“特殊”,右边点击“类型”中的“中文大写数字”;
再在“分类”中点击“自定义”,将右边“类型”栏中的“[DBNum2][$-804]G/通用格式”(不含引号)改写成“[DBNum2][$-804]G/通用格式“圆””(不含外引号);
单击“确定”按钮,回到工作表,在设置了上述数字格式的任一单元格中输入25.6后回车,单元格中即刻显示“贰拾伍.陆圆”(当然没有引号了)。
上述操作完成于Excel2003,输入小数时不能读出小数点。
仿此可以在其它版本中相应设置。

修改单元格格式

单击要修改的那一列,右键——设置单元格格式——数字——特殊——中文大写数字——确定, 即可。