当前位置:文档之家› 人民币大写函数

人民币大写函数

技巧1
人民币大写函数
在VBA中没有内置的函数进行人民币大写转换,此时可以编写自定义函数进行人民币大写转换,如下面的代码所示。

Public Function RMBDX(M) RMBDX= Replace(A pplicatio n.Text(Ro und(M+ 0.0000000 1,2), "[DBnum2] "),".", "元")
RMBDX= IIf(Left( Right(RMB DX,3), 1)="元",
Left(RMBD X,
Len(RMBDX )-1)& "角"& Right(RMB DX,1)& "分", IIf(Left( Right(RMB DX,2), 1)="元",RMBDX &"角整", IIf(RMBDX ="零", "",RMBDX &"元整"))) RMBDX= Replace(R eplace(Re place(Rep lace(RMBD X,"零元零角",""), "零元", ""),"零角","零"),"-", "负")
End Function 代码解析:
首先使用Round函数对小写数字加上极小值后进行四舍五入运算,关于Round函数请参阅技巧157-1。

其次使用工作表Text函数将数值转换成人民币大写格式表示的文本。

Text函数将数值转换为按指定数字格式表示的文本,语法如下:TEXT(valu e,format_ text)
Value参数为数值、计算结果为数值的公式,或对包含数值的单元格的引用。

Format_te xt参数为“单元格格式“对话框中”数字“选项卡上”分类框中的文本形式的数字格式。

Replace函数将人民币大写格式表示的文本中的小数点替换成“元”。

Replace函数返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的,语法如下:Replace(e xpression ,find, replace[, start[, count[, compare]] ])
其中参数expressio n是必需的,包含要替换的子字符串。

参数find是必需的,要搜索到的子字符串。

参数replace是必需的,用来替换的子字符串。

是可选的,在表达式中子字符串搜索的开始位置。

第3行代码使用了IIF 函数、Left 函数、Right函数根据第2行代码返回的人民币大写格式表示的文本中的“元”的位置在文本中插入正确的“元”、“角”、“分”字符,使之符合人民币大写习惯。

IIf函数根据表达式的值,来返回两部分中的其中一个,语法如下:
IIf(expr, truepart, falsepart )
参数expr 是必需的,用来判断真伪的表达式。

truepart是必需的,如果expr 为True,则返回这部分的值或表达式。

参数falsepart 是必需的,如果expr为False,则返回这部分的值或表达式。

Left、Right函数请参阅技巧158 。

第4行代码使用Replace函数将人民币大写格式表示的文本中可能出现的“零元零角”、“零元”替换成空白字符;可能出现的“零角”替换成“零”。

如果输入负数的话,将“-”替换成“负”。

中使用自
定义
RMBDX函
数转换人
民币大写
的效果如
图163‑1
所示。

图 163‑1人民币大写转换。

相关主题