VBA代码、自定义函数(人民币金额大写)
实现功能:把数字金额转换成大写
Excel里面自带函数是可以把数字转换成大写,但是账务需要的是有元、角、分,这样是做不出来的,这个时候就需要我们自己做了。
这只是一个实例,根据这个方法我们可以去完成很多自己想要的功能。
下面是代码分享
Function 大写(cell As String) '自定义一个带参数的函数
Dim rmbs As String '申明一个长字符串类型变量
If cell = '' Or Not IsNumeric(cell) Then 大写 = '': Exit Function '如果参数为空和非数值返回空白
If cell = 0 Then 大写 = '零元整': Exit Function '如果是0则返 零元整
rmbs = Replace(Replace(Application.Text(Round(cell, 2), '[dbnum2]'), '.', '元'), '-', '负')
'将数字转换成大写,点替换成 元 ,负号替换成 负字
rmbs = IIf(Left(Right(rmbs, 3), 1) = '元', Left(rmbs, Len(rmbs) - 1) & '角' & Right(rmbs, 1) & '分', IIf(Left(Right(rmbs, 2), 1) = '元', rmbs & '角', IIf(rmbs = '零', '', rmbs & '元整')))
'加入角与分,同时将最后的 零 替换成 元整
rmbd = Replace(Replace(rmbs, '零元', ''), '零角', '')
'将零元 和 零角 替换成空
大写 = rmbs '将变量的值赋给函数
End Function '结束自定义函数
Sub 调用自定义函数()
[d1] = 大写([sum(a1:a5)])
End Sub
'在单元格里输入公式:=大写(SUM(B2:B6)) 就会得到求和结果