ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何定义将大写中文金额转换为阿拉伯数字金额的自定义函数?

如何定义将大写中文金额转换为阿拉伯数字金额的自定义函数?

作者:绿色风 分类: 时间:2022-08-17 浏览:133
楼主
BIN_YANG168
Q:怎样用自定义函数将大写中文金额转换为阿拉伯数字金额,如:壹仟贰佰叁拾肆元伍角柒分
变为:1234.57
A:按Alt+F11,插入模块VBE窗口中输入以下代码:
  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


然后在A1单元格输入需要的大写中文金额,在其他单元格输入=SUZI (A1)即可。

大写中文金额转为阿拉伯数字.rar
2楼
水吉果果
学习**
3楼
chenlifeng
在word中,有几处错误我当如何修正:
Volatile 方法或数据成员未找到
Evaluate 字过程未定义
4楼
yytax2010
谢谢分享!   
5楼
gfp12345678
谢谢分享!   

免责声明

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

评论列表
sitemap