作者:绿色风
分类:
时间:2022-08-17
浏览:106
楼主 BIN_YANG168 |
Q:怎样用自定义函数转换阿拉伯数字金额转换为会计大写中文金额,如:123.45 变为:壹佰贰拾叁元肆角伍分 A:按Alt+F11,插入→模块→在VBE窗口中输入以下代码:
- Function DaXie(ByVal Num) ' 人民币中文大写函数
- Application.Volatile True
- Place = "分角元拾佰仟万拾佰仟亿拾佰仟万"
- Dn = "壹贰叁肆伍陆柒捌玖"
- D1 = "整零元零零零万零零零亿零零零万"
- If Num < 0 Then FuHao = "(负)"
- Num = Format(Abs(Num), "###0.00") * 100
- If Num > 999999999999999# Then: DaXie = "数字超出转换范围!!": Exit Function
- If Num = 0 Then: DaXie = "零元零分": Exit Function
- NumA = Trim(Str(Num))
- NumLen = Len(NumA)
- For J = NumLen To 1 Step -1 ' 数字转换过程
- Temp = Val(Mid(NumA, NumLen - J + 1, 1))
- If Temp <> 0 Then ' 非零数字转换
- NumC = NumC & Mid(Dn, Temp, 1) & Mid(Place, J, 1)
- Else ' 数字零的转换
- If Right(NumC, 1) <> "零" Then
- NumC = NumC & Mid(D1, J, 1)
- Else
- Select Case J ' 特殊数位转换
- Case 1
- NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1)
- Case 3, 11
- NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零"
- Case 7
- If Mid(NumC, Len(NumC) - 1, 1) <> "亿" Then
- NumC = Left(NumC, Len(NumC) - 1) & Mid(D1, J, 1) & "零"
- End If
- Case Else
- End Select
- End If
- End If
- Next
- DaXie = FuHao & Trim(NumC)
- End Function
然后在A1单元格输入需要的数字,在其他单元格输入=DAXIE (A1)即可。
数字金额转换中文大写.rar |
2楼 xyf2210 |
这个有用,记下 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一