ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 综合应用 > [原创]解决Evaluate函数受公式长度限制的一个小技巧

[原创]解决Evaluate函数受公式长度限制的一个小技巧

作者:绿色风 分类: 时间:2022-08-18 浏览:289
楼主
gouweicao78
通过对
如何计算文本形式的公式
?
但令人苦恼的是,这个函数受公式长度限制,只能计算长度255字符以内的文本公式(见测试)。
下面,告诉你们一个小技巧解决这个问题:

【测试】:A1输入=REPT("1+",127)&1,那么将产生字符长度为2*127+1=255个字符的1+1+1……的文本公式,此时用EVALUATE定义的名称是可以得出结果的。但将127改为128或者将&1改为&10达到256个字符,Evaluate得到的就是#VALUE!错误。

【解决】
步骤1、B1输入="="&A1,如有其他公式,向下复制。如果A列本身就带=号而设为文本格式,则可之用用=A1或跳过此步骤。直接复制A列贴到B列(因为A列是要留下来让别人看计算明细的)。
步骤2、复制B列,选择型粘贴为“值”
步骤3、选择B列,数据→分列→完成。

【受限】不能随着A列公式的更改变化结果,呵呵。因而,有兴趣的可以录制一个宏来完成。这个方法在建筑工程预算中常见字符超长的情况比较有效。一般情况我们都用Evaluate解决。

2楼
szhtct
厉害

3楼
xyz
这样是没有用EVALUATE嘛,
初始我以为是如何超过255Byte...
4楼
aotuman2
虽然现在想不到哪能用到,学了先~~~
5楼
水星钓鱼
经测试,VBA中的Evaluate方法也有256个字符的限制
  1. Sub test1()
  2.     MsgBox Application.Evaluate("REPT(""1+"",127)&1")
  3. End Sub
  1. Sub test2()
  2.     MsgBox Application.Evaluate("REPT(""1+"",127)&10")
  3. End Sub
6楼
bluexuemei
学习,高招!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap