打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
编写你自己的EXCEL函数
编写你自己的EXCEL函数
  可不可以在EXCEL中定义自己的函数,实现自己想要的功能?答案是肯定的。想知道怎样定义一个自己的函数吗?看我逐一为你道来。当然,在这之前你最好了解一些编程序方面的知识。

  在以下示例中,将实现这样的函数功能:

  在A2单元格中输进"=DXJE(A1)" (不包括引号)

  函数会检查A1单元格中的内容是不是数字,假如不是,则在A2单元格中显示:"错误,您要转换的值不是一个数字!",假如是数字,则将它转换成大写的金额。

  这里说的单元格地址只是举例,实际上,这个自定函数和EXCEL内部函数的使用方法是一样的,但是还是有一些小小的差别,这个放到后面讲,现在看看如何实现这个函数功能。

  新建一个EXCEL表格;

  按ALT+F11进进VBE界面(在工作标签上点右键/查看代码也可以进进);

  在VBE插进菜单中插进一个模块;

  双击模块1,在其中输进: Public Function DXJE(M) if ISNUMERIC(M) THEN DXJE = Replace(Application.Text(Round(M + 0.00000001, 2), "[DBnum2]"), ".", "元") DXJE = IIf(Left(Right(DXJE, 3), 1) = "元", Left(DXJE, Len(DXJE) - 1) & "角" & Right(DXJE, 1) & "分", IIf(Left(Right(DXJE, 2), 1) = "元", DXJE & "角整", IIf(DXJE = "零", "", DXJE & "元整"))) DXJE = Replace(Replace(Replace(Replace(DXJE, "零元零角", ""), "零元", ""), "零角", "零"), "-", "负") ELSE DXJE="错误,您要转换的值不是一个数字" END IF End Function 好了,现在封闭VBE窗口,回到EXCEL中,另?**诒4胬嘈椭醒≡?加载宏",名字起什么没关系,不过最好体现功能,这里我们另?**?大写金额转换.xla"。EXCEL会自动将XLA后缀的文件保存到"C:\Documents and Settings\当前电脑用户名\Application Data\Microsoft\AddIns"路径下。

  封闭EXCEL,再随便打开一个EXCEL;

  在工具菜单中选择"加载宏",弹出加载宏对话框;

  在左边的多选框中勾选你刚才保存的"大写金额转换"加载宏。什么?没有?好吧,假如没有,你点击"浏览",到"C:\Documents and Settings\当前电脑用户名\Application Data\Microsoft\AddIns"路径下把"大写金额转换.xla"打开,就会有了。

  现在,你随便在一个单元格中输进"=DXJE()",然后回车,看到了什么?它显示为"壹万贰仟叁佰肆拾伍元整",当然,括号里的内容也可以是单个的单元格地址,这个和内置函数是一样的。

  前?**颐撬倒远ㄒ宓暮湍谥玫幕故腔嵊幸坏阈〔畋穑衷谖依锤嫠吣悴畋鹪谀睦铩<偃缒阌肊RP,财务软件等其它软件的"导出到EXCEL"功能,然后你想要用刚才自定义的函数,会发现,用不了,出现了错误。为什么会这样呢?我之前为此迷惑了好久,还到网上发贴寻找答案,不过后来我自己想到了。原来,一般的软件在使用"导出到EXCEL"功能时,会在启动EXCEL的命令中加上一些启动参数,比如说,不显示启动画面的参数是"/e","/s"是以安全模式启动EXCEL,这样启动的EXCEL方式如同它是安装后首次启动一样,会跳过加载宏,所以,自定义函数不起作用了。解决这个题目没有好的方法,你可以先将这个导出来的EXCEL保存,封闭,然后重新双击打开,这样就可以使用自定义的函数了。

  最后说一句,函数并不能做到所有的功能,它只适合做那些只有一个返回值的事情。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在Excel中自定义人民币大写转换函数
如何正确学习VBA,才能省心省力又高效?
菜鸟谈VBA最最基础入门(二)
excel阿拉伯金额数字转换成中文大写形式
Excel2003高级VBA编程宝典
EXCEL金额转大写公式与自定义函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服