|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
网上有很多不用工作表函数实现阿拉伯数字转人民币大写的代码,仅把它改一改,就可以变成阿拉伯数字转小写中文了。
- Function NumToCN(ByVal Num)
- Application.Volatile True
- Num = Trim(Num)
- If Not IsNumeric(Num) Then NumToCN = "#N/A": Exit Function
- Place = "分角点十百千万十百千亿十百千万"
- Dn = "一二三四五六七八九"
- D1 = "整〇元〇〇〇万〇〇〇亿〇〇〇万"
- If Num < 0 Then FuHao = "(负)"
- Num = Format(Abs(Num), "###0.00") * 100
- If Num > 999999999999999# Then: NumToCN = "数字超出转换范围!!": Exit Function
- If Num = 0 Then: NumToCN = "〇": 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
- For i = 1 To 4
- numc = Replace(numc, Mid("分角元整", i, 1), "")
- Next
- If Right(numc, 1) = "点" Then numc = Replace(numc, "点", "")
- NumToCN = FuHao & Trim(numc)
- End Function
复制代码 |
|