Excel 的元角分整!!

把这个小写数字转换成大写文字我倒是做得来,但是今天遇到了这个问题真把我弄头疼了,网上我找了,但是我知识水平有限看不明白,请各位大哥、大姐指点一二,感激不尽了!!!!谢谢!!
表上有数量及单价,可以得到数量总值。也可以得到金额,我想将金额转换成大写。如:198.60 直接转换为:壹佰玖拾捌元陆角正。 这需要设置函数,请教这个详细的步骤。越详细越好。拜托了各位。

HI 我,帮你看看

1. 首先更正一下,到了角分,就不用整字了。整正对于单位元。另外,支票大写需要补零,比如壹万零千伍佰零十元。这个函数不是
2. 进入EXCEL 按 ALT + F11 进入VBA
3. 右击VBA工作簿,插入---模块,将以下代码复制进去
4. 用=daxie() 公式调用

Function daxie(money As String) As String
'实现货币金额中文大写转换的程序
'程式限制为不可输入超过16个数字
Dim x As String, y As String
Const zimu = ".sbqwsbqysbqwsbq" '定义位置代码
Const letter = "0123456789sbqwy.zjf" '定义汉字缩写
Const upcase = "零壹贰叁肆伍陆柒捌玖拾佰仟万亿元整角分" '定义大写汉字

If CDbl(money) >= 1E+16 Then daxie = "#VALUE!": Exit Function '只能转换一亿亿元以下数目的货币!

x = Format(money, "0.00") '格式化货币
y = ""
For i = 1 To Len(x) - 3
y = y & Mid(x, i, 1) & Mid(zimu, Len(x) - 2 - i, 1)
Next
If Right(x, 3) = ".00" Then
y = y & "z" '***元整
Else
y = y & Left(Right(x, 2), 1) & "j" & Right(x, 1) & "f" '*元*角*分
End If
y = Replace(y, "0q", "0") '避免零千(如:40200肆万零千零贰佰)
y = Replace(y, "0b", "0") '避免零百(如:41000肆万壹千零佰)
y = Replace(y, "0s", "0") '避免零十(如:204贰佰零拾零肆)

y = Replace(y, "0j", "0") '避免零角
y = Replace(y, "0f", "") '避免零分

Do While y <> Replace(y, "00", "0")
y = Replace(y, "00", "0") '避免双零(如:1004壹仟零零肆)
Loop
y = Replace(y, "0y", "y") '避免零亿(如:210亿 贰佰壹十零亿)
y = Replace(y, "0w", "w") '避免零万(如:210万 贰佰壹十零万)
y = IIf(x < 0.1, Right(y, Len(y) - 3), y) '避免零几分(如:0.01零壹分;0.04零肆分)
y = IIf(Len(x) = 4, Replace(y, "0.", ""), Replace(y, "0.", ".")) '避免零元(如:20.00贰拾零元;0.12零元壹角贰分)

For i = 1 To 19
y = Replace(y, Mid(letter, i, 1), Mid(upcase, i, 1)) '大写汉字
Next
daxie = y
End Function
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-04-23
如果你要转换的金额在A1,则在A2输入:
=SUBSTITUTE(SUBSTITUTE(TEXT(TRUNC(FIXED(A1)),"[>0][dbnum2];[<0]负[dbnum2];;")&TEXT(RIGHT(FIXED(A1),2),"元[dbnum2]0角0分;;"&IF(ABS(A1)>1%,"元整",)),"零角",IF(ABS(A1)<1,,"零")),"零分","整")

另外还有一个完美一点的公式,考虑了很多特殊情况的,花了我一个小时去想去试的哦:
=IF(A1=0,"",IF(MOD(A1,1),IF(A1>=1,NUMBERSTRING(INT(A1),2)&"元","")&IF(RIGHT(FIXED(A1,2),1)="0",NUMBERSTRING(MOD(A1*10,10),2)&"角",NUMBERSTRING(MOD(INT(A1*10),10),2)&IF(MOD(INT(A1*10),10)=0,"","角")&NUMBERSTRING(MOD(A1*100,10),2)&"分"),NUMBERSTRING(INT(A1),2)&"元整"))本回答被提问者采纳
第2个回答  2010-06-10
这个可以在数值格式里设,但你非要带个“正”就不好弄了。
因为小数点后有数的话,一般是不写整的。
第3个回答  2010-06-10
是精确的位数吧!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网