请问在Excel里怎么用VBA把中文大写的数字转换成阿拉伯数字?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问在Excel里怎么用VBA把中文大写的数字转换成阿拉伯数字?相关的知识,希望对你有一定的参考价值。

例如:把壹拾贰万叁仟肆佰元叁角贰分转换成123400.32
香格里拉稻草人和fjmxwrs的答案我测试了都不行,测试的是
壹拾贰万元叁角贰分

壹拾万零肆佰元叁角贰分

Sub 人民币大写转数字()
Dim reg As Object, arr, b$, a
arr = Range("a1:a" & [a65536].End(xlUp).Row)
For i = 1 To UBound(arr)
a = Split(arr(i, 1), "元")
k = Len(arr(i, 1))
If Right(a(0), 1) = "佰" Then a(0) = a(0) & "零零": k = k + 2
If Right(a(0), 1) = "拾" Then a(0) = a(0) & "零": k = k + 1
a(0) = a(0) & "."
a = Join(a, "")
Do While x < k
x = x + 1
Select Case Mid(a, x, 1)
Case "壹"
b = b & 1
Case "贰"
b = b & 2
Case "叁"
b = b & 3
Case "肆"
b = b & 4
Case "伍"
b = b & 5
Case "陆"
b = b & 6
Case "柒"
b = b & 7
Case "捌"
b = b & 8
Case "玖"
b = b & 9
Case "零"
b = b & 0
Case "万"
b = b & ""
Case "仟"
b = b & ""
Case "佰"
b = b & ""
Case "拾"
b = b & ""
Case "角"
b = b & ""
Case "分"
b = b & ""
Case "."
b = b & "."
End Select
Loop
Range("a" & i) = "¥" & b & "元"
b = "": a = "": x = 0
Next
End Sub
参考技术A 来个自定义函数的,代码写到模块中
Function Xiaoxie(Rng As Range)
Dim str1$
str1 = Rng
For x = 1 To Len(str1) Step 2
i = Mid(str1, x, 1)
If i = "零" Then
i = 0
ElseIf i = "壹" Then
i = 1
ElseIf i = "贰" Then
i = 2
ElseIf i = "叁" Then
i = 3
ElseIf i = "肆" Then
i = 4
ElseIf i = "伍" Then
i = 5
ElseIf i = "陆" Then
i = 6
ElseIf i = "柒" Then
i = 7
ElseIf i = "捌" Then
i = 8
ElseIf i = "玖" Then
i = 9
ElseIf i = "元" Then
i = 0
x = x - 1
ElseIf i = "万" Then
i = 0
x = x - 1
End If
j = Mid(str1, x + 1, 1)
If j = "万" Then
k = 10000
s = (s + i) * k
Else
If j = "仟" Then
k = 1000
ElseIf j = "佰" Then
k = 100
ElseIf j = "拾" Then
k = 10
ElseIf j = "元" Then
k = 1
ElseIf j = "角" Then
k = 0.1
ElseIf j = "分" Then
k = 0.01
End If
s = s + i * k
End If
Next x
Xiaoxie = s
End Function

如你的数据在A1,那么=xiaoxie(a1)
就得到你的结果了。
参考技术B fjmxwrs 的函数不行,可以试试下面的大写转换:
壹拾贰万元叁角贰分
壹拾万零肆佰元叁角贰分
参考技术C 如果只是单纯的EXCEL里偶尔用到的,直接用查找替换即可,如需要自动操作才用VBA!

一个字替换一次也就替换10次就够了!(全部替换)

如何自动把数字转换成大写的金钱?

参考技术A

Excel 根据数字金额自动生成大写金额的操作方法:

一、首先点击选中需要同步大写金额的单元格,按Ctrl+!打开单元格格式窗口。

二、打开单元格格式窗口后,点击左侧的“特殊”,右边使用“中文大写数字”,点击“确定”。

三、然后在大写金额单元格中输入“=A2”,点击回车。

四、这时即可自动生成和A2单元格数值相同的大写数字。

五、当A2单元格内的数值被修改后,B2单元格内的大写数值也会自动同步更改。

以上是关于请问在Excel里怎么用VBA把中文大写的数字转换成阿拉伯数字?的主要内容,如果未能解决你的问题,请参考以下文章

VBA 如何将数字转换为中文大写

VBA 如何将数字转换为中文大写

在WORD中怎样用VBA将人民币大写金额转换成小写金额

excel里有N行数据,我现在要随机取1000行不重复的数据,请问VBA宏怎么写?

在WORD中怎样用VBA将人民币大写金额转换成小写金额

各位大侠,怎样用VBA小写字母转大写字母