excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决
发布时间:2023-06-11 18:36:26
Excel界曾经流行的一个经典问题是求算式计算结果。这个问题的源头很可能来自于工程预算工作。工程预算中的材料规格经常用算式表达,比如2*2、40*50、3.14*15*15等等。预算人员需要把这些算式计算出结果。类似的问题如下图一,第2行算式为1+1,计算结果应为2。尽管算式是小学水平,但表格若有上千行算式,逐行计算手工填列结果非常费时。
经典问题的经典解法是,使用宏表函数EVALUATE。宏表函数EVALUATE经过定义名称才能在工作表使用。假如算式和计算结果的列相对位置发生变化时,不能直接修改公式,而是要再次定义名称,相当不便。
Excelman认为使用自定义函数是不错的替代方法。下面是自定义函数EVALUATEVBA的代码。函数的代码只有三行!诸位几乎不需要考虑任何VBA代码逻辑,简单易用。总之,名副其实拿来即用!
代码如下:
Public Function EVALUATEVBA (ByVal s As String) As Variant
EVALUATEVBA = Application.Evaluate(s)
End Function
自定义函数EVALUATEVBA怎么样使用呢?
先把自定义函数的三行代码添加到工作簿的模块中。之后就能在工作簿里使用自定义函数EVALUATEVBA了。代码添加到工作簿的模块具体操作步骤请看下图二。
那么,函数EVALUATEVBA有什么作用呢?它的作用与宏表函数EVALUATE相似,但用起来方便多啦!
比如上述图一求算式的计算结果问题,B1单元格直接填写公式 =evaluatevba(A2),向下填充公式,OK!
之前Excelman在窝窝的微信公众号发表过一篇《奇招解难题,另类使用Max函数求最大值》。(请点击教程最下面左下角的“阅读原文”访问)。文中表妹的问题若用EVALUATEVBA,做法来得更直接。
如图四,要求从B列的装箱号“1,3,4,5”得到最大值5显示在C列的装箱号最大值。C1单元格填写公式 =evaluatevba("=max({"&B2&"})") 或=MAX(evaluatevba("{"&B2&"}")),向下填充公式,又OK!
从=MAX(evaluatevba("{"&B2&"}"))这个公式可以看出,自定义函数evaluatevba和宏表函数evaluate一样,可以将符合数组书写规则的字符文本,如“{1,3,4,5}”这样的字符文本,转为让Excel函数能够识别的作为计算数据的数组。
Evaluatevba有时给填充公式提供相当大的便利。比如下图四,假设工作簿中有名为“1月、2月、3月”的工作表,A列列示的是工作表名,现在需要在B列分别计算出3个工作表B列的数量(数字)的合计数。可以这样做:B2单元格填写公式
=evaluatevba("=SUM('"&A2&"'!B:B)")&T(NOW())
然后向下填充公式。T(NOW())的作用是令Excel在工作表数据变动时重新计算更新计算结果。B2单元格的公式,其效果与 =SUM('1月'!B:B) 相同,但是使用自定义函数EVALUATEVBA的好处是可以直接向下复制填充公式。
请大家试试简单易用的自定义函数EVALUATEVBA吧,如果喜欢,为我点个赞。
excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决的下载地址:


猜你喜欢
- 在安装软件时都会加载很多信息表,但是卸载的时候无法自动全部删除,会遗留下很多注册表冗余垃圾,这时就需要对它进行清理,下面有几个不错的方法,大
- Win7系统下有很多服务,而有些服务是可以禁用的,禁用这些服务能够起到保护硬盘延长硬盘使用的作用,那么Win7哪些服务可以关闭呢?下面小编就
- 很多时候,我们会为了方便而在excel中插入很多超链接,而过后又想全部删除。那么,excel2010怎么批量删除超链接?批量取消Excel单
- acer宏碁笔记本电脑怎么u盘重装win7系统?宏基与华硕、惠普、联想、戴尔同属于笔记本电脑的一线品牌。那么宏基笔记本电脑怎么使用u盘重装系
- 为了保护Excel工作薄里面的工作表不被增加和删除,我们可以这样操作,就可以防止他人增删工作簿内的工作表。打开Excel工作表,执行“审阅—
- Excel中经常需要使用到公式让时间进行递增的技巧,用公式具体该如何使时间数据递增呢?下面是小编带来的关于excel用公式让时间递增的教程,
- 在使用WPS表格制作表格的时候,常常需要添加序号。比较常用的两种方法是按住shif键进行添加,或者手动添加。但是,这两种添加方式,都有一个共
- 在编辑Word文档过程中,由于某种特殊需求,我们可能需要更改文档中一些相同的字符,这个时候我们就可以利用查找功能先将文档中指定的所有文字搜索
- 在使用装完系统的时候,我们常常会先安装一些输入法,但是有时候输入法安装太多了就必须在语言栏设置一下,可是很多用户不知道Windows7语言栏
- 相信不少朋友都在使用Epic来下载各种游戏,但有部分小伙伴在使用Epic的时候却打不开游戏库,那么遇到这种情况要怎么解决呢?下面就和小编一起
- agsatellite.exe是媒体下载软件相关进程进程文件: agsatellite or agsatellite.exe 进程名称: A
- 在使用3dmark软件的时候很多的用户都遇到了无系统信息可使用的情况,针对这一问题专为你们带来了3dmark无系统信息可用解决方法,还没解决
- Win10设备管理器在哪打开?不少朋友看Win10系统教程都会提到要打开设备管理器,就是没搞清楚怎么快速打开,那么今天系统部落小编就来详细说
- 近期有部分用户反映自己的电脑屏幕一直不停地在闪烁,十分影响电脑的正常使用,那么有没有什么方法可以解决呢?如果你也有同样的困扰,不妨来看看下面
- excel200中如何避免重复输入相同的内容或者符合等等信息,就需要进行设置,然后系统提示修改或者直接阻止输入,不会的朋友可以参考本文,来看
- 瑞星路由安全卫士详细的使用教程?瑞星路由安全卫士可以自动修复主流WIFI路由器的安全漏洞,有效保护WIFI安全、设备安全和财产安全。是一款专
- 7月8日微软为Windows Insider快速更新用户推送了Win10 Mobile/PC一周年更新预览版14383,已修复bug和优化性
- 下图左侧A2:C6单元格区域为数据源,右侧为根据数据源制作的简易 * 图,其中系列"计划"用折线图显示,系列"实
- 亚马逊购物怎么开发票?亚马逊购物是一款非常好用的购物软件,用户可以在里面购买DVD、电脑、家具等,有些用户在购买物品的时候有开发票的习惯,那
- 在安装win7系统时会产生100M的隐藏系统空间,很多人不了解这个空间也不知道该怎么将隐藏空间删除,下面就给你们带来了删除的方法,赶快一下学