- 1、本文档共2页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在Excel中实现中文大写数字
在与朋友开发表格模板时,为做一个能在Excel中构造数字的汉字写法(中文大写)的一段VB函数花了不少时间。事后仔细想来,其实实现数字读法的方法实际上至少有三种,即VB编程法、自动更正法及工作表函数的替换法。用VB编程实际上是最复杂的一种方法(但也是一劳永逸的方法),在很多时候完全可以用较简单的方法实现。以下分别介绍这几种方法。
自动更正法
使用自动更正功能,可以简化用户对大写汉字的输入操作,例如可以将“1//”定义更正为“壹”,那么当要输入“壹”时,就可通过键入“1//”来实现。另外,这种定义以后不仅在Excel中有效,在Word中也同样有效,因为“自动更正”程序是Office组件所公用的。
用“自动更正”是最简单易行的,用户可自由、方便地输入要写的大写读法。然而它的局限性也很明显,即它虽然给使用者提供了输入大写数字的方便手段,但终究还是需要人工输入,不能自动、实时地依当前的实际数字结果进行更新。
工作表函数替换法
要做到数值的自动更新,一般都会想到用VB构造函数法,但其实我们可采用一个简单的方法,即工作表函数的替换法。顾名思义,所谓“工作表函数的替换法”,就是将原来的结果换去一部分。那么换什么,又怎样换?
我们知道,在Excel中,提供了多种数字的显示格式。其中文版实际上也包括数字的大写读法显示格式,但遗憾的是这个功能对一般用户来说基本上不能用,因为Microsoft在实现这个数字显示格式时犯了一个小小的错误,例如“33.56”这个数,它显示出来的是“叁拾叁.伍陆”。很显然,没有将小数点作有效处理。
虽然这个显示格式是错的,但其劳动成果还是能为我们所用——只要能设法将其小数点作有效处理。做到这一点也并不难,可以先将数字以其内置的中文大写显示格式转变为文本格式,即使用TEXE( )函数将其结果转化为字符串,然后将小数点“.”用汉字“点”换掉(使用SUBSTITUTE( )。
例如,若要将B1单元格内容重写为大写,则可以在单元格中输入如下公式:
=SUBSTITUTE(TEXT(B1,″G/通用格式″),″.″,″点″)
使用这样一个小小的公式应当说并不复杂,不过,这样做仍不能满足某些情况下的要求,因为使用大写表示数额一般只应用于财会方面,其他很少这么用。在上例中,对数字“33.56”,往往要求结果写为“叁拾叁元伍角陆分”。那么,如何将“33.00”写为“叁拾叁元整”呢
实现这一功能的逻辑也不太复杂。我们可以看到,Excel显示格式的小数点前的数字读法是没有错的,可将其取出来作为一个字符串;小数点后面的数字则麻烦些,必取出来,再以低位是否都为“0”来判断是要写“整”还是“零”。还要将“元”、“角”、“分”等字串适当地插入,最后把几个字串连接起来就行了。我们仍将B1单元格内容作格式转化,则具体实现如下:
=TEXT(INT(B1),″G/通用格式″)&″元″&IF((INT(B1*10)-INT(B1) *10)=0,″ ″,TEXT(INT(B1*10) - INT (B1) * 10 ,″G/通用格式″) &″角″)&IF((INT(B1*100)-INT(B1*10) *10)=0,″整″,TEXT (INT (B1*100) - INT ( B1*10) *10,″G/通用格式″)&″分″)
写这么一长串的公式看来似乎有些吓人,但是,如果在常要修改数据的表中或在模板里以这个方法实现大写汉字显示的话,则以后不但省事而且不易出错。
VB编程法的思路
可以用VB写一个函数,以后可像Excel的内部函数一样直接被调用,不过这需要熟悉VB编程。在编程过程中可用一般的方法调用VB函数,也可以借用我们前面所列“代换法”中的函数。但前面的公式中用的大多是Excel的工作表函数,在VB中不能直接使用,若非要用,也只能通过层次关系调用它(即用“Application WorksheetFunction”方式调用)。
但笔者认为最好自己用VB函数写,因为这样的话,较通用且可移植性好。若只用VB函数,具体方法与代换法也有类似之处,但小数点前的处理要复杂得多,相应的代码也太长。
您可能关注的文档
- 土豆青豆香菇腊肉焖饭.doc
- 土质学和土力学练习题A.doc
- 圣堡罗门业“6S贵族门”概念.doc
- 圣女贞德红收获甜蜜和幸福.doc
- 圣宝龙电动车对未来便携电动车设计的展望.doc
- 圣诞晚会宣传海报制作.doc
- 圣诞老人给孩子的信.doc
- 圣诞节期间孕妈出游注意事项.docx
- 在4大做审计学到的技能.docx
- 在arcgis下如何进行影像图裁剪.doc
- 河南省行政职业能力测验-真题斜沉勘误版.pdf
- 2025年内蒙古鄂尔多斯市水利局所属事业单位引进高层次人才4人笔试模拟试题附答案详解.docx
- 汽车吊车基础知识课件.pptx
- 2025年内蒙古鄂尔多斯市水利局所属事业单位引进高层次人才4人笔试模拟试题及参考答案详解.docx
- 汽车运输安全管理课件.pptx
- 2025年内蒙古鄂尔多斯市水利局所属事业单位引进高层次人才4人笔试模拟试题及完整答案详解1套.docx
- 2025年内蒙古鄂尔多斯市水利局所属事业单位引进高层次人才4人笔试模拟试题及参考答案详解1套.docx
- 三氧化硫的吸收及三废处理82课件.ppt
- 人教版初中物理八年级上册第一章机械运动复习课件(共23张).ppt
- 2025年内蒙古鄂尔多斯市水利局所属事业单位引进高层次人才4人笔试模拟试题及参考答案详解一套.docx
文档评论(0)