EXCEL VBA自定义函数
11-27 21:36:09软件知识
浏览次数:637次
标签:电脑软件知识,软件基础知识,电脑入门,http://www.duosi8.com
EXCEL VBA自定义函数,
、会计工作中,经常需要将用阿拉伯数字表示的货币转换为大写中文数字表示,并且要求符合中文语法。以下VBA自定义函数可以解决这个问题,在EXCEL 2003中调试通过,使用功能也正常,但并不表示其代码编写就是合格的、优秀的,恳请达者、方家指正并改进。 为了方便,本人在编写代码时将可转换范围限定为绝对值不大于1万亿。 Const z As String = "零", d As String = "", e As String = "亿", f As String = "拾" Const g As String = "佰", h As String = "仟" Function Dxzh(a As Variant) As String If IsNumeric(a) = False Then Dxzh = "无法转换" Else b = CStr(Int(100 * Abs(CDbl(a)) + 0.5)) If CDbl(b) > 100000000000000# Then Dxzh = "数值超限" Else Dxzh = d: c = Len(b) For i = c To 1 Step -1 Dxzh = Replace(Dxzh & Mychoose(CInt(Left(b, 1)), CInt(i)), "零零", z) b = Right(b, Len(b) - 1) Next i Dxzh = Replace(Dxzh, "零亿", e) Dxzh = Replace(Dxzh, "零万", "万") Dxzh = Replace(Dxzh, "零圆", "圆") Dxzh = Replace(Dxzh, "亿万", e) If Right(Dxzh, 1) = z Then Dxzh = Left(Dxzh, Len(Dxzh) - 1) If Dxzh = z Then Dxzh = "零圆" If Sgn(CDbl(a)) = -1 Then Dxzh = "负" & Dxzh End If End If End Function Private Function Mychoose(Temp1 As Integer, Temp2 As Integer) As String Mychoose = Choose(Temp1 + 1, z, "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖") x = Choose(Temp2, "分", "角", "圆", f, g, h, "万", f, g, h, e, f, g, h) If Temp2 Mod 4 <> 3 And Mychoose = z Then x = d Mychoose = Mychoose & x End Function 第一个自定义函数就能写得这样严谨,很难得. ,EXCEL VBA自定义函数
、会计工作中,经常需要将用阿拉伯数字表示的货币转换为大写中文数字表示,并且要求符合中文语法。以下VBA自定义函数可以解决这个问题,在EXCEL 2003中调试通过,使用功能也正常,但并不表示其代码编写就是合格的、优秀的,恳请达者、方家指正并改进。 为了方便,本人在编写代码时将可转换范围限定为绝对值不大于1万亿。 Const z As String = "零", d As String = "", e As String = "亿", f As String = "拾" Const g As String = "佰", h As String = "仟" Function Dxzh(a As Variant) As String If IsNumeric(a) = False Then Dxzh = "无法转换" Else b = CStr(Int(100 * Abs(CDbl(a)) + 0.5)) If CDbl(b) > 100000000000000# Then Dxzh = "数值超限" Else Dxzh = d: c = Len(b) For i = c To 1 Step -1 Dxzh = Replace(Dxzh & Mychoose(CInt(Left(b, 1)), CInt(i)), "零零", z) b = Right(b, Len(b) - 1) Next i Dxzh = Replace(Dxzh, "零亿", e) Dxzh = Replace(Dxzh, "零万", "万") Dxzh = Replace(Dxzh, "零圆", "圆") Dxzh = Replace(Dxzh, "亿万", e) If Right(Dxzh, 1) = z Then Dxzh = Left(Dxzh, Len(Dxzh) - 1) If Dxzh = z Then Dxzh = "零圆" If Sgn(CDbl(a)) = -1 Then Dxzh = "负" & Dxzh End If End If End Function Private Function Mychoose(Temp1 As Integer, Temp2 As Integer) As String Mychoose = Choose(Temp1 + 1, z, "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖") x = Choose(Temp2, "分", "角", "圆", f, g, h, "万", f, g, h, e, f, g, h) If Temp2 Mod 4 <> 3 And Mychoose = z Then x = d Mychoose = Mychoose & x End Function 第一个自定义函数就能写得这样严谨,很难得. ,EXCEL VBA自定义函数
《EXCEL VBA自定义函数》相关文章
- EXCEL VBA自定义函数
- › 更改WOED,EXCEL默认字体字号
- › 用Excel做一个自动对奖表
- › EXCEl打印怎么才能自动转列
- › EXCEL中如何进行“单字段、多条件”筛选?
- › 学好Excel函数应提高Excel技术水平
- › EXCEL作柱状图表粘贴到WORD上
- › excel清除0值
- › Excel2007删除带有颜色的单元格
- › 如何调整EXCEL表格内的字体方位?
- › EXCEL中的数据筛选及合并表格
- › 在word或者excel里乘号怎么打出来?
- › excel 同时计算多个单元格
- 在百度中搜索相关文章:EXCEL VBA自定义函数
- 在谷歌中搜索相关文章:EXCEL VBA自定义函数
- 在soso中搜索相关文章:EXCEL VBA自定义函数
- 在搜狗中搜索相关文章:EXCEL VBA自定义函数
tag: 软件知识,电脑软件知识,软件基础知识,电脑入门,电脑学习 - 软件知识