excel vba实例003 如何将小写金额转换成大写

 时间:2024-10-13 08:36:49

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

excel vba实例003 如何将小写金额转换成大写

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是金额大写的缩写,便于记忆引用。

excel vba实例003 如何将小写金额转换成大写excel vba实例003 如何将小写金额转换成大写

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

excel vba实例003 如何将小写金额转换成大写

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

  • 怎样使用VBA人民币大写?
  • VBA定制之数字转人民币大写
  • excel中使用vba提取所有工作薄名称的方法
  • 怎么用VBA宏代码将单元格设为人民币大写
  • 如何利用VBA代码更改图表颜色
  • 热门搜索
    江南旅游 邛崃旅游 若尔盖旅游攻略 三亚旅游团报价 去冰岛旅游要多少钱 盘锦旅游 成都旅游网 适合一个人旅游的地方 旅游板块 朱家尖旅游攻略