ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 如果将小写数字转换为这种大写格式,急!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-6-15 03:22 | 显示全部楼层 |阅读模式
我需要取A1的小写数字转化为B2的“         佰          拾        万       仟       佰       拾       元       角       分”格式

A1为200,012.01
转换为B2的“零佰贰拾零万零仟零佰壹拾贰元零角壹分”
找了很多公示都不行。

TA的精华主题

TA的得分主题

发表于 2006-6-15 07:22 | 显示全部楼层
这个和你的要求有点不同,不知道能不能用。
<P>=IF(ABS(RMBNumber)&gt;0.994,TEXT(INT(FIXED(RMBNumber)),"[dbnum2]")&amp;"元",)&amp;IF(INT(FIXED(RMBNumber)*10)=INT(FIXED(RMBNumber))*10,IF(RIGHT(FIXED(RMBNumber))&lt;&gt;"0",IF(ABS(RMBNumber)&gt;0.994,"零",),),LEFT(RIGHT(TEXT(RMBNumber,"[dbnum2].0角0分"),4),2))&amp;IF(RIGHT(FIXED(RMBNumber))="0",IF(ABS(RMBNumber)&gt;0,"整"",),RIGHT(TEXT(RMBNumber,"[dbnum2].0角0分"),2))<br></P><P>把里面的RMBNumber替换成需要转换的数字</P>
[此贴子已经被作者于2006-6-15 7:24:57编辑过]

TA的精华主题

TA的得分主题

发表于 2006-6-15 08:49 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2006-6-15 08:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
<P>打开Excel,按Alt+F11(或者选择菜单 工具→宏→Visual Basic 编辑器),进入后新建模块(插入→模块),</P>
<P>键入以下语句: </P>

<P>Function NCN(account) 'Nummary Capital Number </P>
<P>ybb = Round(account * 100) </P>
<P>y = Int(ybb / 100) </P>
<P>j = </P>
<P>Int(ybb / 10) - y * 10 </P>
<P>f = ybb - y * 100 - j * 10 </P>
<P>zy = Application.WorksheetFunction.Text(y, </P>
<P>"[dbnum2]") </P>
<P>zj = Application.WorksheetFunction.Text(j, "[dbnum2]") </P>
<P>zf = </P>
<P>Application.WorksheetFunction.Text(f, "[dbnum2]") </P>
<P>NCN = zy &amp; "圆" </P>
<P>If j = 0 And f = 0 Then </P>
<P>NCN = </P>
<P>NCN &amp; "整" </P>
<P>End If </P>
<P>If f &lt;&gt; 0 And j &lt;&gt; 0 Then </P>
<P>NCN = NCN &amp; zj &amp; "角" &amp; zf &amp; "分" </P>
<P>If y = 0 Then </P>
<P>NCN = </P>
<P>zj &amp; "角" &amp; zf &amp; "分" </P>
<P>End If </P>
<P>End If </P>
<P>If f = 0 And j &lt;&gt; 0 Then </P>
<P>NCN = NCN &amp; zj &amp; "角" </P>
<P>If y = 0 Then </P>

<P>NCN = zj &amp; "角" </P>
<P>End If </P>
<P>End If </P>
<P>If f &lt;&gt; 0 And j = 0 Then </P>
<P>NCN = NCN &amp; zj &amp; zf &amp; "分" </P>
<P>If y = 0 Then </P>

<P>NCN = zf &amp; "分" </P>
<P>End If </P>
<P>End If </P>
<P>If account = "" Then </P>
<P>NCN = "" </P>
<P>End If </P>
<P>End Function </P>

<P><BR>这样就可以了,关闭VB编辑器,进入Excel界面会发现在插入函数时多了一类“用户定义”,里面有个函数“NCN</P>
<P>”,就是你要的函数。起名为NCN,意思是“Nummary Capital Number”货币大写数字。如果不喜欢,可以在角</P>
<P>本里改,用理想的函数名替换"NCN"即可。 <BR>试试看吧!在A1里键入“1025.3”,在B1里写“=NCN(A1)”,效果不</P>
<P>错吧? <BR>关闭之前可以把你自己写的模块导出到一个.bas文件,以后想用的时候导入即可。因为是自己编写的,</P>
<P>所以没有数字签名,打开带有此函数的文件时会提示有风险。降低安全级别即可,打开之后再改回来。 </P>
<P>就说这么多了</P>

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-6-15 09:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
<P>4楼说的函数好像符合我的需要,</P>
<P>按要求操作了,已生成自定义的NCN函数,</P>
<P>但在表格录入数据时出错,跳转到Visual Basic 编辑器</P>
<P>提示:编译出错</P>
<P>      语法出错</P>
<P>Function NCN(account) 'Nummary Capital Number(黄色)</P>
<P>ybb = Round(account * 100)</P>
<P>y = Int(ybb / 100)</P>
<P>j=(兰色)</P>

TA的精华主题

TA的得分主题

发表于 2006-7-4 17:24 | 显示全部楼层
<p>你看这样行不?</p><p>1&nbsp; =TEXT(INT(A5),"[dbnum2]")&amp;"元"&amp;IF(INT(A5*10)-INT(A5)*10=0,"",TEXT(INT(A5*10)-INT(A5)*10,"[dbnum2]")&amp;"角")&amp;IF(INT(A5*100)-INT(A5*10)*10=0,"整",TEXT(INT(A5*100)-INT(A5*10)*10,"[dbnum2]")&amp;"分")</p><p>2 =IF(ROUND(A5,2)&lt;0,"无效数值",IF(ROUND(A5,2)=0,"零",IF(ROUND(A5,2)&lt;1,"",TEXT(INT(ROUND(A5,2)),"[dbnum2]")&amp;"元")&amp;IF(INT(ROUND(A5,2)*10)-INT(ROUND(A5,2))*10=0,IF(INT(ROUND(A5,2))*(INT(ROUND(A5,2)*100)-INT(ROUND(A5,2)*10)*10)=0,"","零"),TEXT(INT(ROUND(A5,2)*10)-INT(ROUND(A5,2))*10,"[dbnum2]")&amp;"角")&amp;IF((INT(ROUND(A5,2)*100)-INT(ROUND(A5,2)*10)*10)=0,"整",TEXT((INT(ROUND(A5,2)*100)-INT(ROUND(A5,2)*10)*10),"[dbnum2]")&amp;"分")))</p><p>3 =IF(ISNUMBER(A7),IF(ROUND(A7,2)&lt;0,"无效数值",IF(ROUND(A7,2)=0,"零",IF(ROUND(A7,2)&lt;1,"",TEXT(INT(ROUND(A7,2)),"[dbnum2]")&amp;"元")&amp;IF(INT(ROUND(A7,2)*10)-INT(ROUND(A7,2))*10=0,IF((INT(ROUND(A7,2)*100)-INT(ROUND(A7,2)*10)*10)=0,"","零"),TEXT(INT(ROUND(A7,2)*10)-INT(ROUND(A7,2))*10,"[dbnum2]")&amp;"角")&amp;IF((INT(ROUND(A7,2)*100)-INT(ROUND(A7,2)*10)*10)=0,"整",TEXT((INT(ROUND(A7,2)*100)-INT(ROUND(A7,2)*10)*10),"[dbnum2]")&amp;"分"))),"非数值!!!")</p>

TA的精华主题

TA的得分主题

发表于 2006-12-31 10:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-1-17 19:45 | 显示全部楼层
<p>这样子也可以的</p><p>=IF(A1&lt;0,"负",)&amp;IF(INT(ABS(A1)),TEXT(INT(ABS(A1)),"[dbnum2]")&amp;"元",)&amp;IF(INT(ABS(A1)*10)-INT(ABS(A1))*10,TEXT(INT(ABS(A1)*10)-INT(ABS(A1))*10,"[dbnum2]")&amp;"角",IF(INT(ABS(A1))=ABS(A1),,"零"))&amp;IF(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),TEXT(ROUND(ABS(A1)*100-INT(ABS(A1)*10)*10,),"[dbnum2]")&amp;"分","整")</p>[em02]

TA的精华主题

TA的得分主题

发表于 2007-1-18 14:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-1-18 20:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
8楼的不错,已验证,收藏了,谢谢!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-11 17:53 , Processed in 0.048402 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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