ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ldy

[分享]人民币大写函数TEXT终极版 1行(136字符)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-4-4 16:53 | 显示全部楼层
本帖已被收录到知识树中,索引项:数据格式转换
谢谢楼主分享了!!!

TA的精华主题

TA的得分主题

发表于 2009-5-7 14:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习,学习,再学习!

TA的精华主题

TA的得分主题

发表于 2009-5-31 23:36 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2009-6-30 21:35 | 显示全部楼层
版主:

     请把下面的代码给合并成一个函数,用第2个参数区分[DBNUM1]、[DBNUM2]格式:

Function 汉字(m)
'中文汉字源代码,By ldy
    汉字 = Replace(Replace(Replace(Join(Application.Text(Split(Format(m, " 0. 0 0;负 0. 0 0;   ")), ["[DBnum1]"&{0,"","元0角;;元○","0分;;整"}]), a), "○元○", a), "○元", a), "○整", "整")
End Function
Function dx(m)
'中文大写源代码,By ldy
    dx = Replace(Replace(Replace(Join(Application.Text(Split(Format(m, " 0. 0 0;负 0. 0 0;   ")), ["[DBnum2]"&{0,"","元0角;;元零","0分;;整"}]), a), "零元零", a), "零元", a), "零整", "整")
End Function

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-30 22:20 | 显示全部楼层
[DBnum1] 在[  ] 里面 不支持变量,简单点弄吧
Function 汉字(m, Optional t  =0)
If t Then
    汉字 = Replace(Replace(Replace(Join(Application.Text(Split(Format(m, " 0. 0 0;负 0. 0 0;   ")), ["[DBnum2]"&{0,"","元0角;;元零","0分;;整"}]), a), "零元零", a), "零元", a), "零整", "整")
Else
    汉字 = Replace(Replace(Replace(Join(Application.Text(Split(Format(m, " 0. 0 0;负 0. 0 0;   ")), ["[DBnum1]"&{0,"","元0角;;元○","0分;;整"}]), a), "○元○", a), "○元", a), "○整", "整")
End If
End Function

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-6-30 22:47 | 显示全部楼层
想了想,可以合并弄成一行,就是长了点,看起来也晕

Function 汉字(m, Optional i = 2)
汉字 = Replace(Replace(Replace(Replace(Join(Application.Text(Split(Format(m, " 0. 0 0;负 0. 0 0;   ")), Evaluate("""[DBnum" & i & "]""&{0,"""",""元0角;;元零"",""0分;;整""}")), a), "零元零", a), "零元", a), "零整", "整"), "零", IIf(i = 1, "○", "零"))
End Function

调用
msgbox  汉字(1000.03)
msgbox  汉字(1000.03,1)

TA的精华主题

TA的得分主题

发表于 2009-6-30 22:51 | 显示全部楼层
原帖由 ldy 于 2009-6-30 22:47 发表
想了想,可以合并弄成一行,就是长了点,看起来也晕

Function 汉字(m, Optional i = 2)
汉字 = Replace(Replace(Replace(Replace(Join(Application.Text(Split(Format(m, " 0. 0 0;负 0. 0 0;   ")), Evaluate(" ...

谢谢版主,又一次学习了.

TA的精华主题

TA的得分主题

发表于 2009-6-30 23:15 | 显示全部楼层
原帖由 ldy 于 2009-6-30 22:47 发表
想了想,可以合并弄成一行,就是长了点,看起来也晕

Function 汉字(m, Optional i = 2)
汉字 = Replace(Replace(Replace(Replace(Join(Application.Text(Split(Format(m, " 0. 0 0;负 0. 0 0;   ")), Evaluate(" ...

第二参数省略时返回[DBNUM2]格式,不省略时参数数字与TEXT函数的格式一样,性质不变。这个更灵活。

TA的精华主题

TA的得分主题

发表于 2009-7-13 09:13 | 显示全部楼层
谢谢楼主分享!!还是不太明白!

TA的精华主题

TA的得分主题

发表于 2009-7-15 23:12 | 显示全部楼层
心里感觉好,就是不懂怎么用!……55555……

可以用了!!!
再次感谢!!!!!!!!!!!!

[ 本帖最后由 gannaijun 于 2009-7-15 23:41 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-22 16:10 , Processed in 0.040581 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表