将阿拉伯金额数字转换成中文大写形式的两种方法: 内置函数法、 自定义函数法一、 内置函数法    我们将C12 单元格中的数值转换为中文大写形式, 并将结果保存在D12 单元格中。   1、 分别选中 E13、 F13、 G113 单元格, 依次输入公式: =TEXT(INT(ABS(C12)),"[DBNum2]")、 =TEXT(INT(ABS(C12*10))- INT(ABS(C12))*10,"[DBNum2]")、 =TEXT(INT(ABS(C12*100))- INT(ABS(C12*10))*10,"[DBNum2]")。公式含义解析: 分别确定统计结果的元、 角、 分的数值, 并将其转换为中文大写格式。2、 选中 E10 单元格, 输入公式: =E13&"元"&F13&"角"&G13&"分", 或者: =CONCATENATE(E13,"元",F13,"角",G13,"分")。公式含义解析: 将E13 至G13 单元格中的文本组合为一个整体,并在相应位置加上单位「元、 角、 分」 文字。     3、 再次选中 E12 单元格, 执行「格式→条件格式」 命令, 打开 「条件格式」 对话框。   按「条件1」下面的下拉按钮, 选中「公式」 选项, 在后面的方框中输入「=$C$12<0」,再按「格式」 按钮, 在随后弹出的「单元格格式」 对话框中, 将「字体」 颜色设置为红色, 确定退出。     4、 选中 C12 单元格, 执行「格式→单元格」 命令, 打开「单元格格式」 对话框, 切换到「数字」 标签下, 选中「分类 」 下面的「货币」 选项后, 再选中右边「负数」 下面的红色选项,确定退出。     注意: 经过以上两步操作后, 当 C12 中的数值小于零时, 大、 小写结果均以红色显示, 与财务要求相一致。     5、 选中 13 行, 右击滑鼠, 在随后弹出的快捷菜单中, 选「隐藏 」 选项, 将13 行隐藏起来, 不影响正常列印效果。

二、自定义函数法

  显然上面的转换方法比较麻烦。其实,我们可以事先自定义一个函数,然后再用自定义的函数来转换。   1、执行「工具→宏→Visual Basic编辑器」命令,进入「Visual Basic编辑」窗口。执行「插入→模块」命令,插入一个模块(如「模块1」),双击「模块1」在窗口右边展开「模块1(代码)」编辑窗口,输入如下代码。

 Function dxje(q)    ybb = Round(q * 100) "将输入的数值扩大100倍,进行四舍五入   y = Int(ybb / 100) "截取出整数部分   j = Int(ybb / 10) - y * 10 "截取出十分位   f = ybb - y * 100 - j * 10 "截取出百分位   zy = Application.WorksheetFunction.Text(y, "[dbnum2]") "将整数部分转为中文大写   zj = Application.WorksheetFunction.Text(j, "[dbnum2]") "将十分位转为中文大写   zf = Application.WorksheetFunction.Text(f, "[dbnum2]") "将百分位转为中文大写   dxje = zy & "元" & "整"    d1 = zy & "元"    If f <> 0 And j <> 0 Then     dxje = d1 & zj & "角" & zf & "分"     If y = 0 Then      dxje = zj & "角" & zf & "分"     End If    End If    If f = 0 And j <> 0 Then     dxje = d1 & zj & "角" & "整"     If y = 0 Then      dxje = zj & "角" & "整"     End If    End If    If f <> 0 And j = 0 Then     dxje = d1 & zj & zf & "分"     If y = 0 Then      dxje = zf & "分"     End If    End If    If q = "" Then     dxje = 0 "如没有输入任何数值为0    End If   End Function

  注意:①上面代码中英文单引号「"」后面的字元可以不输入,只是用来解释代码的含义。②代码中「dxje」是自定义函数名称,你可以修改为其他字元。

  2、输入完成后,关闭VBA编辑窗口返回工作表状态。

  3、如果要转换C2单元格的数值,并将结果保存的D2单元格中,只要在D2单元格中输入公式:=dxje(C2),确认即可。

注意:通常情况下,自定义的函数只适应于定制的工作簿中,如果要在其它工作簿中使用,请将其制作为载入宏,然后载入一下即可。

  以上自定义函数的代码由「中文Excel应用论坛」网友豆豆提供,在此表示感谢!方法三:金额转换——一个经典的函数公式=IF(A1<0,"负","")&IF(ABS(A1)>1,TEXT(TRUNC(ABS(ROUND(A1,2))),"[DBNum2]")&"元","")&IF(ISERR(FIND(".",ROUND(A1,2))),"",TEXT(RIGHT(TRUNC(ROUND(A1,2)*10)),"[DBNum2]"))&IF(ISERR(FIND(".0",TEXT(A1,"0.00"))),"角","")&IF(LEFT(RIGHT(ROUND(A1,2),3))=".",TEXT(RIGHT(ROUND(A1,2)),"[DBNum2]")&"分","整")
推荐阅读:

查看原文 >>
相关文章