ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助:如何更好地实现大小写金额的转换?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-2-3 09:41 | 显示全部楼层 |阅读模式
<SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">在</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">excel</SPAN><SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">单元格中输入小写金额,通过“设置单元格格式”中的“中文大写数字”只能简单地实现数字大写的转换,即输入“</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">23.5</SPAN><SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">”只能转成“贰拾叁</SPAN><SPAN lang=EN-US style="FONT-SIZE: 10.5pt; FONT-FAMILY: 'Times New Roman'; mso-bidi-font-size: 10.0pt; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">.</SPAN><SPAN style="FONT-SIZE: 10.5pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">伍”,能否转换成财务中所需要的“贰拾叁元伍角”呢?望高手们指教。</SPAN>

TA的精华主题

TA的得分主题

发表于 2004-2-3 12:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
静女!看一下前面几页,有许多实用例子啊.

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-2-3 14:53 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
在哪里?能烦劳楼上的朋友将网址复制给我吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2004-2-3 15:42 | 显示全部楼层
我找到了!dispbbs.asp?boardID=5&amp;ID=30212&amp;page=6

TA的精华主题

TA的得分主题

发表于 2004-3-18 21:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我找不到


<A href="http://www.2525.cn.gs/dx.rar" target="_blank" >http://www.2525.cn.gs/dx.rar</A>





用这个工具可行,但我不知道源代码


<FONT face=华文新魏 color=#0000ff size=4>是加载宏,你需通过点击工具-加载项-浏览来加载本工具!</FONT>


<FONT face=华文新魏 color=#0000ff size=4>可以使用=D()函数实现转换,如=D(13.03),结果是“拾叁元零叁分”</FONT><BR>





[此贴子已经被作者于2004-3-18 21:58:31编辑过]

TA的精华主题

TA的得分主题

发表于 2004-3-19 09:16 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2004-3-19 18:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

看这个,很实用的,爽!

leXvEtNe.rar (9.9 KB, 下载次数: 185) <BR>

TA的精华主题

TA的得分主题

发表于 2004-3-19 20:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我做的函数,我一直在用


不受直接使用EXCEL中IF函数的嵌套数限制,数值最大可到千亿位


EXCEL单元格只显示公式=SAY(),不显示庞大的IF公式





Function SAY(number)<BR>        'Function say(),progremmed by 长安布衣,2002-2-7<BR>        'Amended         2002-3-29 15:39<BR>        'At        Changan<BR>        'email:mrttl@hotmail.com


        num_int = number * 100<BR>        str_0 = "零壹贰叁肆伍陆柒捌玖"<BR>        str_1 = "仟佰拾亿仟佰拾万仟佰拾元角分"<BR>        num_lth = Len(Str(num_int)) - 1<BR>        str_say0 = ""<BR>        For i = 1 To num_lth<BR>                 str_chr = Mid$(Str$(num_int), i + 1, 1)<BR>                 num_chr = Val(str_chr)<BR>                 str_s1 = Mid$(str_0, num_chr + 1, 1)<BR>                 str_s2 = Mid$(str_1, 14 - (num_lth - i), 1)<BR>                 str_say1 = str_say0 + str_s1 + str_s2<BR>                 str_say0 = str_say1<BR>        Next<BR>        SAY = str_say1<BR>        If number &lt; 0 Then<BR>                 SAY = "(负数)" + SAY<BR>        End If<BR>        ' remove the "仟" when it after the "零"<BR>        zeronum = InStr(1, SAY, "零仟")<BR>        len_say = Len(SAY)<BR>        Do While zeronum &gt; 0<BR>                 SAY = Left(SAY, zeronum - 1) + "零" + Right(SAY, len_say - zeronum - 1)<BR>                 zeronum = InStr(1, SAY, "零仟")<BR>                 len_say = Len(SAY)<BR>        Loop<BR>        ' remove the "佰" when it after the "零"<BR>        zeronum = InStr(1, SAY, "零佰")<BR>        len_say = Len(SAY)<BR>        Do While zeronum &gt; 0<BR>                 SAY = Left(SAY, zeronum - 1) + "零" + Right(SAY, len_say - zeronum - 1)<BR>                 zeronum = InStr(1, SAY, "零佰")<BR>                 len_say = Len(SAY)<BR>        Loop<BR>        ' remove the "拾" when it after the "零"<BR>        zeronum = InStr(1, SAY, "零拾")<BR>        len_say = Len(SAY)<BR>        Do While zeronum &gt; 0<BR>                 SAY = Left(SAY, zeronum - 1) + "零" + Right(SAY, len_say - zeronum - 1)<BR>                 zeronum = InStr(1, SAY, "零拾")<BR>                 len_say = Len(SAY)<BR>        Loop<BR>        ' remove the "角" when it after the "零"<BR>        zeronum = InStr(1, SAY, "零角")<BR>        len_say = Len(SAY)<BR>        Do While zeronum &gt; 0<BR>                 SAY = Left(SAY, zeronum - 1) + "零" + Right(SAY, len_say - zeronum - 1)<BR>                 zeronum = InStr(1, SAY, "零角")<BR>                 len_say = Len(SAY)<BR>        Loop<BR>        ' remove the "分" when it after the "零"<BR>        zeronum = InStr(1, SAY, "零分")<BR>        len_say = Len(SAY)<BR>        Do While zeronum &gt; 0<BR>                 SAY = Left(SAY, zeronum - 1) + "零" + Right(SAY, len_say - zeronum - 1)<BR>                 zeronum = InStr(1, SAY, "零分")<BR>                 len_say = Len(SAY)<BR>        Loop<BR>        ' remove the "零亿" with "亿零"<BR>        zeronum = InStr(1, SAY, "零亿")<BR>        If zeronum &gt; 0 Then<BR>                 SAY = Left(SAY, zeronum - 1) + "亿零" + Right(SAY, len_say - zeronum - 1)<BR>        End If<BR>        ' remove the "零万" with "万零"<BR>        zeronum = InStr(1, SAY, "零万")<BR>        len_say = Len(SAY)<BR>        Do While zeronum &gt; 0<BR>                 SAY = Left(SAY, zeronum - 1) + "万零" + Right(SAY, len_say - zeronum - 1)<BR>                 zeronum = InStr(1, SAY, "零万")<BR>                 len_say = Len(SAY)<BR>        Loop<BR>        ' remove the "零元" with "元零"<BR>        zeronum = InStr(1, SAY, "零元")<BR>        len_say = Len(SAY)<BR>        If zeronum &gt; 0 Then<BR>                 SAY = Left(SAY, zeronum - 1) + "元零" + Right(SAY, len_say - zeronum - 1)<BR>        End If<BR>        <BR>        ' remove the "零零" with "零"<BR>        zeronum = InStr(1, SAY, "零零")<BR>        len_say = Len(SAY)<BR>        Do While zeronum &gt; 0<BR>                         SAY = Left(SAY, zeronum - 1) + "零" + Right(SAY, len_say - zeronum - 1)<BR>                         zeronum = InStr(1, SAY, "零零")<BR>                         len_say = Len(SAY)<BR>        Loop<BR>        <BR>        ' remove the "零亿" with "亿"<BR>        zeronum = InStr(1, SAY, "零亿")<BR>        len_say = Len(SAY)<BR>        If zeronum &gt; 0 Then<BR>                 SAY = Left(SAY, zeronum - 1) + "亿" + Right(SAY, len_say - zeronum - 1)<BR>        End If<BR>        ' remove the "零元" with "元"<BR>        zeronum = InStr(1, SAY, "零元")<BR>        len_say = Len(SAY)<BR>        If zeronum &gt; 0 Then<BR>                 SAY = Left(SAY, zeronum - 1) + "元" + Right(SAY, len_say - zeronum - 1)<BR>        End If<BR>        ' remove the "万" after "亿"<BR>        zeronum = InStr(1, SAY, "亿万")<BR>        len_say = Len(SAY)<BR>        If zeronum &gt; 0 Then<BR>                 SAY = Left(SAY, zeronum - 1) + "亿" + Right(SAY, len_say - zeronum - 1)<BR>        End If<BR>        ' remove "零" with "整" at the end of SAY()<BR>        zeronum = Right(SAY, 1)<BR>        len_say = Len(SAY)<BR>        If zeronum = "零" Then<BR>                 SAY = Left(SAY, len_say - 1) + "整"<BR>        End If<BR>        If SAY = "整" Then<BR>                 SAY = "零元整"<BR>        End If<BR>        End Function








[此贴子已经被作者于2004-3-20 12:48:37编辑过]

TA的精华主题

TA的得分主题

发表于 2004-3-21 07:30 | 显示全部楼层
9楼的朋友,你的函楼有BUG,输入100.236有问题啊,还是8楼的实用。

TA的精华主题

TA的得分主题

发表于 2004-3-22 13:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
8楼的朋友,你的我不会用,帮帮忙
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 21:43 , Processed in 0.029372 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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