excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决

时间:2023-06-11 18:36:26 

Excel界曾经流行的一个经典问题是求算式计算结果。这个问题的源头很可能来自于工程预算工作。工程预算中的材料规格经常用算式表达,比如2*2、40*50、3.14*15*15等等。预算人员需要把这些算式计算出结果。类似的问题如下图一,第2行算式为1+1,计算结果应为2。尽管算式是小学水平,但表格若有上千行算式,逐行计算手工填列结果非常费时。

 

excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决

 

 

经典问题的经典解法是,使用宏表函数EVALUATE。宏表函数EVALUATE经过定义名称才能在工作表使用。假如算式和计算结果的列相对位置发生变化时,不能直接修改公式,而是要再次定义名称,相当不便。

 

Excelman认为使用自定义函数是不错的替代方法。下面是自定义函数EVALUATEVBA的代码。函数的代码只有三行!诸位几乎不需要考虑任何VBA代码逻辑,简单易用。总之,名副其实拿来即用!

 

代码如下:

 

Public Function EVALUATEVBA (ByVal s As String) As Variant

    EVALUATEVBA = Application.Evaluate(s)

End Function

 

自定义函数EVALUATEVBA怎么样使用呢?

 

先把自定义函数的三行代码添加到工作簿的模块中。之后就能在工作簿里使用自定义函数EVALUATEVBA了。代码添加到工作簿的模块具体操作步骤请看下图二。

 

excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决

excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决

 

 

那么,函数EVALUATEVBA有什么作用呢?它的作用与宏表函数EVALUATE相似,但用起来方便多啦!

 

比如上述图一求算式的计算结果问题,B1单元格直接填写公式 =evaluatevba(A2),向下填充公式,OK!

 

 

excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决

 

 

之前Excelman在窝窝的微信公众号发表过一篇《奇招解难题,另类使用Max函数求最大值》。(请点击教程最下面左下角的“阅读原文”访问)。文中表妹的问题若用EVALUATEVBA,做法来得更直接。

 

如图四,要求从B列的装箱号“1,3,4,5”得到最大值5显示在C列的装箱号最大值。C1单元格填写公式 =evaluatevba("=max({"&B2&"})") 或=MAX(evaluatevba("{"&B2&"}")),向下填充公式,又OK!

 

 

excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决

 

 

从=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的好处是可以直接向下复制填充公式。

 

 

excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决

 

 

请大家试试简单易用的自定义函数EVALUATEVBA吧,如果喜欢,为我点个赞。

excel 算式自动计算 使用到了自定义函数EVALUATEVBA来解决的下载地址:


     

标签:excel算式自动计算,EVALUATEVBA函数
0
投稿

猜你喜欢

  • Win10删除有TrustedInstaller权限的文件方法!

    2023-11-14 15:50:27
  • 手机qq查看好友使用手机型号教程

    2023-07-15 08:36:35
  • Win10怎么通过重置修复来完成Edge浏览器修复

    2023-12-06 07:29:14
  • Excel的50个逆天功能,动画教程珍藏版!看完变Excel绝顶高手

    2023-10-21 23:06:23
  • 使用Tap Forms 5 for Mac怎样设置布局?Tap Forms 5 for Mac使用教程

    2022-01-17 01:03:15
  • 怎么对excel中的数据进行函数运算并替代原数据

    2023-08-23 14:34:05
  • Photoshop CC 2019 for Mac新增了哪些功能?Ps2019新增功能介绍

    2022-12-02 07:18:19
  • MAC系统设置QQ快速截屏的步骤

    2022-04-08 03:14:25
  • 驱动精灵怎么样?驱动精灵的介绍和使用方法

    2023-08-07 00:38:41
  • Excel表格怎么设置内容只能输入不能修改

    2022-12-21 20:29:59
  • ​Word怎么设置不允许单词断开换行

    2022-03-30 08:43:31
  • MacX MediaTrans教程,如何在升级到iPhone XS / XR之前将iPhone备份到Mac上?

    2023-09-10 08:22:06
  • Win10系统如何关闭软键盘?

    2023-06-17 14:27:15
  • 暴雪战网怎么改成国际服?暴雪战网更改地区的方法

    2023-01-16 02:44:31
  • U盘安装Win7操作系统教程完美版适用与win7及win8

    2022-10-10 10:00:41
  • Excel2003中MATCH函数的用法图解教程

    2023-03-30 08:37:30
  • Excel中进行表格更换背景图的操作技巧

    2022-07-14 18:35:09
  • 开机蓝屏0xv000000e怎么办-开机蓝屏0xv000000e解决方法

    2022-04-11 01:14:11
  • 系统我的电脑中文件夹和搜索选项无法使用的解决方法

    2023-01-05 15:00:39
  • WPS中IF与AND函数典型应用实例教程

    2023-03-28 09:55:37
  • asp之家 电脑教程 m.aspxhome.com