ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

将阿拉伯数字转换为人民币大、小写金额?

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-9-4 10:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 13907933959 于 2016-9-5 06:58 编辑
413191246se 发表于 2016-8-30 20:46
139:按照《正确填写票据和结算凭证的基本规定》的规定,你我的写法都是对的,但你非要“零”,所以按照你 ...

师傅好!
在整理诊所的早期帐簿中,发现有几本帐簿里面的金额数字,只有中文大写或小写的金额数字,没有阿拉伯的数字,现在要在这些大写、小写的金额数字前面或后面,增加阿拉伯的数字,师傅有不有办法实现?附件我省得重做,还是用原来的附件改了一下模拟。

模拟附件.rar

6.56 KB, 下载次数: 5

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-9-5 09:04 | 显示全部楼层
413191246se 发表于 2016-8-30 20:46
139:按照《正确填写票据和结算凭证的基本规定》的规定,你我的写法都是对的,但你非要“零”,所以按照你 ...

师傅好!
两个宏中,这个人民币的符号 “¥” 后面加上 :变为 “¥:” 在代码中要怎样修改?

TA的精华主题

TA的得分主题

发表于 2016-9-6 18:35 | 显示全部楼层
  1. Sub 人民币中文大写转阿拉伯数字()
  2.     Dim n As Long, i As String, j As String
  3.     If MsgBox("阿拉伯数字是否放在大写前面?(否则后面)", vbYesNo + vbExclamation, "人民币中文大写转阿拉伯数字") = vbYes Then n = 1 Else n = 0
  4.     ActiveDocument.Content = ActiveDocument.Content & "`"
  5.     Selection.HomeKey Unit:=wdStory
  6.     Do
  7.         Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
  8.         If Selection = "`" Then Exit Do
  9.         Do While Selection.Characters.Last Like "[壹贰叁肆伍陆柒捌玖零亿万仟佰拾元圆角分整]"
  10.             Selection.MoveRight Unit:=wdCharacter, Count:=1, Extend:=wdExtend
  11.             If Selection.Characters.Last Like "[!壹贰叁肆伍陆柒捌玖零亿万仟佰拾元圆角分整]" Then
  12.                 Selection.MoveEnd Unit:=wdCharacter, Count:=-1
  13.                 If Selection Like "元*" Then Selection.MoveStart Unit:=wdCharacter, Count:=1
  14. '
  15.                 Selection.Font.Bold = True '加粗
  16.                 Selection.Font.Color = wdColorBlue '蓝色
  17.                 Selection.Font.Underline = wdUnderlineWavyHeavy '重波浪线
  18. '
  19.                 i = Selection.Text
  20.                 i = Replace(i, "圆", "元")
  21.                 i = Replace(i, "拾元", "0.")
  22.                 If i Like "*仟元整" Then i = Replace(i, "仟元整", "000")
  23.                 If i Like "*仟元零*" Then i = Replace(i, "仟元零", "000.")
  24.                 If i Like "*零?角*" Then i = Replace(i, "零", "")
  25.                 If i Like "*角" Then i = Replace(i, "角", "0")
  26.                 If i Like "*元整" Then i = Replace(i, "元整", "")
  27.                 i = Replace(i, "壹", "1")
  28.                 i = Replace(i, "贰", "2")
  29.                 i = Replace(i, "叁", "3")
  30.                 i = Replace(i, "肆", "4")
  31.                 i = Replace(i, "伍", "5")
  32.                 i = Replace(i, "陆", "6")
  33.                 i = Replace(i, "柒", "7")
  34.                 i = Replace(i, "捌", "8")
  35.                 i = Replace(i, "玖", "9")
  36.                 i = Replace(i, "零", "0")
  37.                 i = Replace(i, "亿", "")
  38.                 i = Replace(i, "万", "")
  39.                 i = Replace(i, "仟", "")
  40.                 i = Replace(i, "佰", "")
  41.                 i = Replace(i, "拾", "")
  42.                 i = Replace(i, "元", ".")
  43.                 i = Replace(i, "角", "")
  44.                 i = Replace(i, "分", "")
  45.                 i = Replace(i, "整", "")
  46.                 j = "(¥:" & i & "元)"
  47.                 If n = 1 Then Selection.InsertBefore Text:=vbCr & j Else Selection.InsertAfter Text:=j & vbCr
  48.                 Exit Do
  49.             End If
  50.         Loop
  51.         Selection.MoveRight Unit:=wdCharacter, Count:=1
  52.     Loop
  53.     Selection.Delete: Selection.TypeBackspace
  54. End Sub
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-9-7 07:50 | 显示全部楼层

师傅好!
师傅辛苦了!刚测试了,转换的阿拉伯数字准确无误,就是每组数字无纶在大写数字金额的前或后,都会改变文档原来的格式、另起一行,师傅有不有办法优化它,让它保持文档原来的格式不变?
另外、求师傅再给一个、小写数字金额转阿拉伯数字的宏。谢谢!

TA的精华主题

TA的得分主题

发表于 2016-9-7 09:38 | 显示全部楼层
139:为方便测试才故意加的回车,可以去掉的(另外格式如蓝色/下划线之类的,最终可以不要的);另外应该多举一些带“零”字样的数字例子,这样才全面。等此大写宏OK了,小写自然就OK!——请重新做一个模拟附件吧(多带“零”字样)!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-9-7 11:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 13907933959 于 2016-9-10 14:22 编辑
413191246se 发表于 2016-9-7 09:38
139:为方便测试才故意加的回车,可以去掉的(另外格式如蓝色/下划线之类的,最终可以不要的);另外应该多 ...

师傅好!
不出您所料,数字添加零后果然出错,附件中标红的数字转换后出错。
请师傅测试附件!

大写附件.rar

3.96 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2017-12-1 21:18 | 显示全部楼层
本帖最后由 ExcelAPInet 于 2017-12-1 21:19 编辑

不用VBA,仅用Excel网络函数库RMBUpper()就可以

TA的精华主题

TA的得分主题

发表于 2017-12-4 02:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼上朋友,VBA宏可以把分散在WORD全文中的“数字+元”小写转换为大写人民币,不能集中处理的。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-12 10:06 , Processed in 0.021487 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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