ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 行业案例 > 财会金融 > 【循环引用】之中文大写人民币逆转为阿拉伯数字

【循环引用】之中文大写人民币逆转为阿拉伯数字

作者:绿色风 分类:财会金融 时间:2022-08-18 浏览:247
楼主
gouweicao78
2008-07月作品。利用循环引用模拟VBA编程步骤,对中文金额进行替换,并利用宏表4.0函数实现转换数值。
注意:因设置迭代运算,请关闭其他Excel文件,单独使用本文件,并设置宏安全性为“中”或低,确认启用宏表4.0函数。

循环引用之中文大写人民币逆转为阿拉伯数字.rar
2楼
gouweicao78
【转帖】EH的Samsea网友写的VBA代码:
  1. Function SuZi(A As String)   ' 人民币中文大写转数字函数
  2.    Application.Volatile True
  3.    Hsf = "分角元拾佰仟万   亿"
  4.    Hs = "零壹贰叁肆伍陆柒捌玖 "
  5.    JH = 1
  6.    A = Replace(A, "整", "")
  7.    A = Replace(A, "亿", ")亿")
  8.    A = Replace(A, "万", ")万")
  9.    If A <> "" Then
  10.       Mylen = Len(A$)
  11.       For m = 1 To Mylen
  12.          If Mid(A, m, 1) = "万" And JH = 1 Then A = "(" & A: JH = 0
  13.          If Mid(A, m, 1) = "亿" Then
  14.             A = "(" & A
  15.             JH = 0
  16.             For K = m + 3 To Mylen + 2
  17.                If Mid(A$, K, 1) = "万" Then
  18.                   A = Replace(A, "亿", "亿(")
  19.                   Exit For
  20.                End If
  21.             Next
  22.             Exit For
  23.          End If
  24.       Next
  25.       For i = 0 To 10
  26.         A = Replace(A, Mid(Hs, i + 1, 1), i)
  27.         A = Replace(A, Mid(Hsf, i + 1, 1), "*" & (10 ^ (i - 2)) & "+")
  28.       Next
  29.       A = Replace(A, "+)", ")")
  30.       A = Replace(A, "+*", "*")
  31.       Mylen = Len(A)
  32.       A = Left(A, Mylen - 1)
  33.       SuZi = Evaluate(A)
  34.    End If
  35. End Function
3楼
omnw
很新颖,支持一下!
4楼
apolloh
这贴不花时间研究不行的
5楼
绿色
谢谢 辛苦了
6楼
江南
应该看不懂 还是收藏吧
7楼
jongcheol
高手高手高高手
8楼
每天学点
谢谢,下载了,对我很有用
9楼
ldy
凑个热闹,去年写的
兼容几种特殊的大写形式
-陆 万  零  仟  零 佰 陆  拾 伍 圆 贰 角 零 分整
玖佰兆零伍亿零柒万零陆拾伍圆整     
9佰兆零5亿7拾万 X6拾圆3角2分
九亿五千6百二十 三圆三角二分
像上面这样的 只要不是错的太离谱 都可以转换成数字


  1. Function DxToN(ss) ' as Double 'as String'  默认返回字符串,可以根据需要选择
  2.     For i% = 1 To 9
  3.         ss = Replace(ss, Mid("壹贰叁肆伍陆柒捌玖", i, 1), i)
  4.         ss = Replace(ss, Mid("一二三四五六七八九", i, 1), i)
  5.     Next
  6.     For i% = Len(ss) To 1 Step -1
  7.         s$ = Mid$(ss, i, 1)
  8.         x% = InStr("分角圆拾佰仟万拾佰仟亿拾佰仟兆", s)
  9.         If x = 0 Then x% = InStr("分毛元十百千萬十百千億十百千兆", s)
  10.         If x Then j% = IIf(j% < x, x, ((j - 3) \ 4) * 4 + x)
  11.         If Val(s) Then M# = M# + (s & String(j - 1, "0")) / 100
  12.     Next
  13.     DxToN = Format(M, "0.00")
  14.     If InStr(ss, "-") Or InStr(ss, "负") Then DxToN = "-" & DxToN
  15. End Function
10楼
laoyebin
草版的函数功力可以说登峰造极喽,好好研究研究
11楼
gouweicao78
ldy兄的代码简洁,而且处理的错误情况较多,这下子要用“循环引用”来模拟,恐怕就困难了。
lao兄,我自己现在看这个东西,感觉都头疼了
,呵呵。
12楼
laoyebin
函数是挺头疼的,受限制的地方太多
13楼
yfan17
我也进来学习一下循环引用。
14楼
春雷
我感觉函数比VBA简单点!很想学会VBA的!但是还没有掌握方法&窍门!
15楼
gouweicao78
如果喜欢函数,社区中的资料已经不少。更何况,春雷同学分享出来的资料也不少是很多斑竹以前初学时的材料。

心境是学习的一个关键。
当在乎的不再是简单的“财富”,收获的将是真正的“财富”
16楼
gcl-1
楼主能反过来把阿拉伯数字转换为中文大写的吗?比如我的报表中A1单元格总金额为12000000元,下设一个A2单元格=A1;但A2单元格中数据自动改为中文大写壹仟贰佰万元?
17楼
gouweicao78


数值转中文大写的方法很多,比如:
  
如何将阿拉伯小写数字转换成中文大写金额
18楼
375268527
谢谢楼主分享
19楼
qq199116
好像 外国人在看中一样 什么东西
20楼
aob
谢谢分享,收藏学习
21楼
yardview
谢谢,下载了,对我很有用
22楼
憧憬小西
看不懂 还是收藏吧
23楼
272779357
支持
24楼
qinhuan66
又学会了一招
25楼
nanxi
好好研究研究
26楼
芐雨
高啊
27楼
gshshzr
谢谢分享
28楼
枫舞
非常方便学习,辛苦了,谢谢
29楼
杨万惠
学习了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap