Excel 三行代码!完美替代宏表函数EVALUATE
发布时间:2023-04-22 10:19:35
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吧,如果喜欢,为我点个赞


猜你喜欢
- 惠普 暗影精灵4 Pro是一款性能非常不错的娱乐影音笔记本电脑,这款电脑搭载了英特尔第8代酷睿i7处理器以及发烧级核芯显卡,能够让用户们有着
- 具体步骤1、点击进入软件 2、输入文体 3、在开始菜单有编辑段落形式的地方
- 在进行概率测试时(如玩彩票的网友就会经常用到),我们会经常用到随机数。当需要大量的随机数时,也许你会为如何获得这么多符合要求的随机数感到困惑
- word里面怎么设置A3格式?在日常的word操作中,默认都是使用A4的纸张格式进行编辑,但是有些情况写,需要小一些的比如A3格式进行编辑的
- 电脑在使用过程当中容易因为各种原因出现问题,通常我们会通过重装系统进行修复,其实不用这么麻烦,Win7系统中有个系统还原功能,可以将系统恢复
- 如果你是一个老网民,那么网站上的各种Flash小插件你一定很熟悉,随着时间的推移和技术的升级,Flash插件慢慢退出了历史的舞台,现在只有很
- 常用的排名统计函数rank,你会吗?除了最常用的降序排列排名,你会升序排名和多区域统一排名吗?统计降序排名=RANK(B2,$B$2:$B$
- wps列宽在哪里设置?打开表格文件,选中表格中文字所在的一列。找到“开始”菜单右侧的“行和列”。在下拉菜单中点击“最适合的列宽”,即可调整。
- 同一文件夹内N个工作簿 ,每个工作簿里N个工作表,最终合并到一个工作表里的代码。假设每个表格结构相同,第一行为标题,第二行为表头,表头内容固
- 胖胖生活怎么开店?胖胖生活是一款购物平台,用户不仅可以在里面购买物品,还可以在里面开店,很多用户还不知道要怎么开店,下面就给大家分享胖胖生活
- Win8系统进入安全模式一般需要经过很多步骤,很是麻烦,如何在开机时进入安全模式呢?复制一份原有的启动引导文件,再对新添加的引导文件进行安全
- 在WPS文档的 利用 历程 傍边, 许多小 同伴不 晓得 怎样 配置 笔墨的 平面 结果, 出格是初入职场的那些小 同伴们,看到 他人 设想
- Win7如何清理系统日志?Win7电脑怎么清理系统日志?我们都知道计算机系统运行时,会生成系统日志。它可以记录系统中硬件,软件和系统的各种问
- 经常需要输入各种公式来辅助计算数据,很多朋友在利用公式计算的时候,分不清相对引用与绝对引用的区别与用法,今天我们就来教大家,如何在Excel
- 任务管理器无法结束进程要怎么办呢?我们在使用电脑的过程中,经常都有遇到过某些程序无法关闭的情况,这时候大家都会选择用任务管理来结束进程。但是
- 最近许多小伙伴都知道微软推出了最新的Windows操作系统——Win11。而不少于用户在通过官方的Windows11安装助手升级的时候却出现
- Win7系统中火狐(Firefox)浏览器的动态图片复制不了如何解决?有使用火狐(Firefox)浏览器的用户最近发现,当想要复制网页当中动
- 如果希望得记录对Office文档的更改,可以在同一个文档中保存多个文档版本。由于 Microsoft Word 仅保存版本间的差别而不是每个
- 在为别人修改和提建议的时候,常常需要在文档中增加或者删除批注,那么,怎样在wps文字宏增删批注呢?其实方法很简单,接下来小编举例简单的例子告
- gwsystemservice.exe是Genesis World应用服务相关程序进程文件: gwsystemservice or gwsy