我思集    管理页面    写新日志    退出


«April 2020»
1234
567891011
12131415161718
19202122232425
2627282930

公告
     我思故我在

──笛卡儿


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:我思集
日志总数:38
评论数量:393
留言数量:-1
访问次数:587045
建立时间:2005年3月29日

MapsGoogle浏览




[软件心得]Excel大写中文金额转换函数
yth 发表于 2006-4-30 12:48:30
网上有不少关于如何把金额转换成大写中文的例子。有些是用公式,有些用VBA自定义函数。我发现有些用公式的转换的结果很好,可是使用总觉得不便。而用VBA的没找到转换很好的例子,于是参考网上的一些例子进行了修改。 源程序如下:  Function dx(q)    ybb = Application.WorksheetFunction.Round(q * 100, 0) '利用Excel函数    'ybb = Round(Abs(q) * 100, 0) 'VBA函数与Excel函数对舍入算法有些不一样    dx = IIf(ybb < 0, "负", "") '符号    ybb = Abs(ybb)    y = Int(ybb / 100) '元    j = Int(ybb / 10) - y * 10 '角    f = ybb - y * 100 - j * 10 '分    zy = Application.WorksheetFunction.Text(y, "[DBNum2]") '大写元    zj = Application.WorksheetFunction.Text(j, "[DBNum2]") '大写角    zf = Application.WorksheetFunction.Text(f, "[DBNum2]") '大写分    If y <> 0 Then dx = dx & zy & "元"    If j <> 0 Then dx = dx & zj & "角"    If f <> 0 Then        If y <> 0 And j = 0 Then dx = dx & "零"        dx = dx & zf & "分"    Else        If y <> 0 Or j <> 0 Then dx = dx & "整"    End IfEnd Function 关于Round函数在不同环境中的区别,可以参看微软的两篇文章: PRB: Round Function different in VBA 6 and Excel Spreadsheet How To Implement Custom Rounding Procedures


阅读全文(16478) | 回复(4) | 编辑 | 精华

回复:Excel大写中文金额转换函数
泡猫的老鼠(游客)发表评论于2008-11-17 12:05:02
顶了


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

回复:Excel大写中文金额转换函数
Patrick(游客)发表评论于2008-3-12 17:06:51
还有一点漏洞,应改为: =IF(LEFT(A1)="-",REPLACEB("-",1,1,"(负)"),"")&IF(ABS(ROUND(A1,2))<1,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(TRUNC(ROUND(A1,2)*10,0)),"[dbnum2]")&"角"&TEXT(RIGHT(TRUNC(ROUND(A1,2)*100,0)),"[dbnum2]")&"分","零角零分",""),"零角",""),"零分","整"),TEXT(INT(ROUND(ABS(A1),2)),"[dbnum2]")&"元"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(TRUNC(ROUND(A1,2)*10,0)),"[dbnum2]")&"角"&TEXT(RIGHT(TRUNC(ROUND(A1,2)*100,0)),"[dbnum2]")&"分","零角零分","整"),"零角","零"),"零分","整"))

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

回复:Excel大写中文金额转换函数
amwdhjy(游客)发表评论于2007-8-18 20:02:44
=IF(LEFT(A1)="-",REPLACEB("-",1,1,"(负)"),"")&IF(ABS(ROUND(A1,2))<1,SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(TRUNC(ROUND(A1,2)*10,0)),"[dbnum2]")&"角"&TEXT(RIGHT(TRUNC(ROUND(A1,2)*100,0)),"[dbnum2]")&"分","零角零分",""),"零角",""),"零分","整"),TEXT(INT(ROUND(A1,2)),"[dbnum2]")&"元"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(RIGHT(TRUNC(ROUND(A1,2)*10,0)),"[dbnum2]")&"角"&TEXT(RIGHT(TRUNC(ROUND(A1,2)*100,0)),"[dbnum2]")&"分","零角零分","整"),"零角","零"),"零分","整"))

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

回复:Excel大写中文金额转换函数
119(游客)发表评论于2006-9-15 23:09:28
非常咸谢

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

回复:Excel大写中文金额转换函数
瓢虫(游客)发表评论于2006-5-14 9:50:03
顶了

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除

» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144388292 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号