1、 为了方便演示,先做两列,一列放小写金额,一列放大写金额。数据的话,各种情况都要考虑到,整数、分为零、角为零、元为零等各种情况。

3、 【注:最新修改代码在最后一步。】 在模块编辑窗口中输入如下代码(由于有人反馈说当单元格是空的时候显姨胀兽辱示成了零元整,这样不对,我也觉得不妥,所以在这里本着对读者负责的态度在这里修改一下,修改注释在后面):“Public Function jedx(curmoney As Currency) As String 'currency改为RangeDim curmoney1 As LongDim i1 As LongDim i2 As IntegerDim i3 As IntegerDim s1 As String, s2 As String, s3 As String'可以在此位置插入如下代码,单引号去掉'if curmoney="" then jedx=""'exit function'end ifcurmoney1 = Round(curmoney * 100)i1 = Int(curmoney1 / 100)i2 = Int(curmoney1 / 10) - i1 * 10i3 = curmoney1 - i1 * 100 - i2 * 10s1 = Application.WorksheetFunction.Text(i1, "[dbnum2]")s2 = Application.WorksheetFunction.Text(i2, "[dbnum2]")s3 = Application.WorksheetFunction.Text(i3, "[dbnum2]")s1 = s1 & "元"If i3 <> 0 And i2 <> 0 Thens1 = s1 & s2 & "角" & s3 & "分"If i1 = 0 Thens1 = s2 & "角" & s3 & "分"End IfEnd IfIf i3 = 0 And i2 <> 0 Thens1 = s1 & s2 & "角整"If i1 = 0 Thens1 = s2 & "角整"End IfEnd IfIf i3 <> 0 And i2 = 0 Thens1 = s1 & s2 & s3 & "分"If i1 = 0 Thens1 = s3 & "分"End IfEnd IfIf Right(s1, 1) = "元" Then s1 = s1 & "整"jedx = s1End Function”注:不包含双引号,其中jedx是金额大写的缩写,便于记忆引用。


6、 打开之后再excel中就可以像使用其他函数一样,我这里是输入“=jedx(B2)”,可以看到,当你输入到一定时候excel会像提示其他函数那样,提示这个函数。

8、鉴于新发现的问题:带小数的负值出错。代码修改如下,可全部复制粘贴:Public Function jedx烫喇霰嘴(curmoney As Range) As StringDim curmoney1 As LongDim i1 As LongDim i2 As IntegerDim i3 As IntegerDim s1 As String, s2 As String, s3 As StringIf curmoney = "" Thenjedx = ""Exit FunctionEnd Ifcurmoney1 = Round(curmoney * 100)If curmoney1 < 0 Thencurmoney1 = -curmoney1i1 = Int(curmoney1 / 100)i2 = Int(curmoney1 / 10) - i1 * 10i3 = curmoney1 - i1 * 100 - i2 * 10s1 = Application.WorksheetFunction.Text(i1, "[dbnum2]")s2 = Application.WorksheetFunction.Text(i2, "[dbnum2]")s3 = Application.WorksheetFunction.Text(i3, "[dbnum2]")s1 = s1 & "元"If i3 <> 0 And i2 <> 0 Thens1 = s1 & s2 & "角" & s3 & "分"If i1 = 0 Thens1 = s2 & "角" & s3 & "分"End IfEnd IfIf i3 = 0 And i2 <> 0 Thens1 = s1 & s2 & "角整"If i1 = 0 Thens1 = s2 & "角整"End IfEnd IfIf i3 <> 0 And i2 = 0 Thens1 = s1 & s2 & s3 & "分"If i1 = 0 Thens1 = s3 & "分"End IfEnd IfIf Right(s1, 1) = "元" Then s1 = s1 & "整"jedx = "负" & s1Elsei1 = Int(curmoney1 / 100)i2 = Int(curmoney1 / 10) - i1 * 10i3 = curmoney1 - i1 * 100 - i2 * 10s1 = Application.WorksheetFunction.Text(i1, "[dbnum2]")s2 = Application.WorksheetFunction.Text(i2, "[dbnum2]")s3 = Application.WorksheetFunction.Text(i3, "[dbnum2]")s1 = s1 & "元"If i3 <> 0 And i2 <> 0 Thens1 = s1 & s2 & "角" & s3 & "分"If i1 = 0 Thens1 = s2 & "角" & s3 & "分"End IfEnd IfIf i3 = 0 And i2 <> 0 Thens1 = s1 & s2 & "角整"If i1 = 0 Thens1 = s2 & "角整"End IfEnd IfIf i3 <> 0 And i2 = 0 Thens1 = s1 & s2 & s3 & "分"If i1 = 0 Thens1 = s3 & "分"End IfEnd IfIf Right(s1, 1) = "元" Then s1 = s1 & "整"jedx = s1End IfEnd Function