dvbbs
收藏本页
联系我们
论坛帮助
dvbbs

>> 电脑专业知识交流
搜一搜更多此类问题 
安易免费财务软件交流论坛专业知识交流电脑知识交流 → 人民币大写函数TEXT终极版

您是本帖的第 1173 个阅读者
树形 打印
标题:
人民币大写函数TEXT终极版
猩星
美女呀,离线,留言给我吧!
等级:论坛游侠
文章:251
积分:1185
注册:2008年8月3日
楼主
  点击这里发送电子邮件给猩星

发贴心情
人民币大写函数TEXT终极版

Function ldyDX(M)'205个字符
ldyDX = IIf(M > -0.005, "", "负") & IIf(Abs(M) < 0.005, "", Replace(Replace(Replace(Join(Application.Text(Split(Format(Abs(M), "0.00"), "."), Split("[DBNum2] [DBNum2]0角0分")), "元"), "零分", "整"), "零角", ""), "零元", ""))
End Function

居然还可以短一点 200个字符

Function DX(M)'200个字符
DX = IIf(Abs(M) < 0.005, "", Replace(Replace(Replace(Join(Application.Text(Split(Format(M, " 0. 00")), Split("@ [DBNum2];;0 [>9][dbnum2]圆0角0分;[=0]圆整;[dbnum2]圆零0分")), ""), "零分", "整"), "0圆零", ""), "0圆", ""))
End Function 

核心语句2 Join(Application.Text(Split(Format(M, " 0. 00")), Split("@ [DBNum2];;0 [>9][dbnum2]圆0角0分;[=0]圆整;[dbnum2]圆零0分")), "")

再细分一些居然又减少6个字符突破200了 08-7-23  

突然想到用 a 代替 “”再少4个   刀砍斧剁 再减5个  不知到是否还能减

Function DX(M)'185个字符
DX = IIf(Abs(M) < 0.005, a, Replace(Replace(Replace(Join(Application.Text(Split(Format(M, " 0. 0 0")), Split(" [DBnum2] [DBnum2]圆0角;;圆零 [DBnum2]0分;;整")), a), "零圆零", a), "零圆", a), "零整", "整"))
End Func
tion 

核心语句3 Join(Application.Text(Split(Format(M, " 0. 0 0")), Split("@ [DBNum2] [=]圆零;[dbnum2]圆0角 [=]整;[dbnum2]0分")), "")

-捌角贰分                     -0.82
-贰分                            -0.015
-壹佰圆零贰分             -100.02
壹万圆零贰分              10000.02
贰角整                         0.2
壹圆整                         0.995

恶补函数的副产品,纯粹的脑力体操。TEXT有如此多秒用!叹服

核心语句 Join(Application.Text(Split(Format(Abs(M), "0.00"), "."), Split("[DBNum2] [DBNum2]0角0分")), "元")

已经完成 X元X角X分 的转换 其他 iif replace 都是对细节的补充。

两年前我写的7 行,又有 gly1126 写的3行,到现在的1 行。欢迎测试挑错

呵呵

附一个 抄自 EXCEL吧 的公式 191字符

=SUBSTITUTE(SUBSTITUTE(TEXT(TRUNC(FIXED(A1)),"[dbnum2]G/通用格式元;负[dbnum2]G/通用格式元;"&IF(A1>-0.5%,,"负"))&TEXT(RIGHT(FIXED(A1),2),"[dbnum2]0角0分;;"&IF(ABS(A1)>1%,"整",)),"零角",IF(ABS(A1)<1,,"零")),"零分","整")

ip地址已设置保密
2008/8/3 13:31:04
tony0576
帅哥哟,离线,有人找我吗?
等级:论坛游侠
文章:247
积分:1760
注册:2009年5月27日
2
  点击这里发送电子邮件给tony0576

发贴心情
看不懂
ip地址已设置保密
2009/5/31 9:41:46

 2   2   1/1页      1    
网上贸易 创造奇迹! 阿里巴巴 Alibaba
北京安易天地软件有限公司北方论坛
联系电话:010-51268244 13611231185 QQ:511102924
Powered By Dvbbs Version 7.1.0 Sp1
页面执行时间 0.10938 秒, 4 次数据查询