ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: fjfhjie

[分享] Evaluate已经突破255字符限制

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2018-8-24 14:02 | 显示全部楼层
本帖已被收录到知识树中,索引项:文本处理和正则
本帖最后由 abc155250 于 2018-8-24 18:05 编辑

已经很好了,经测试,()内计算字突破255字符,也会报错,希望楼主继续改进 2018-08-24_180315.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-8-27 08:46 | 显示全部楼层
abc155250 发表于 2018-8-24 14:02
已经很好了,经测试,()内计算字突破255字符,也会报错,希望楼主继续改进

楼主不知道,你用的哪一版本,但是楼主最新一版本是57楼2018.05.01版,你反应的问题并不存在

TA的精华主题

TA的得分主题

发表于 2018-8-27 14:00 | 显示全部楼层
看错了,不是楼主发的,是66楼哪个

TA的精华主题

TA的得分主题

发表于 2018-9-7 15:58 | 显示全部楼层
本帖最后由 r_zxf 于 2018-9-7 16:17 编辑
abc155250 发表于 2018-8-24 14:02
已经很好了,经测试,()内计算字突破255字符,也会报错,希望楼主继续改进

哈哈,你很聪明。程序本质上是不能一次计算长于255个字符的公式的,因为()项是一次计算的,所以()项不能长于255个字符。鉴于这种情况遇到很少,66楼的作者就不改进了。结论:一次计算长于255个字符的公式是假的!

TA的精华主题

TA的得分主题

发表于 2018-10-9 11:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
r_zxf 发表于 2018-9-7 15:58
哈哈,你很聪明。程序本质上是不能一次计算长于255个字符的公式的,因为()项是一次计算的,所以()项 ...

我做的表达式求值自定义函数EEVAL,不需要安装.NET Framework,就可以真正实现对长度超过255个字符的计算式一次完成求值。而且,它还可以同时完美兼容32位和64位Office,纯VBA代码,简短精悍,非常便于移植,详见以下帖子,喜欢的话,可以加入你的收藏,希望我的原创和共享能得到各位的鲜花支持就OK!

【由ggmmlol原创作品】:表达式求值自定义函数完美突破255字符限制并兼容64位office


TA的精华主题

TA的得分主题

发表于 2018-10-10 11:10 | 显示全部楼层
本帖最后由 r_zxf 于 2018-10-10 11:50 编辑
ggmmlol 发表于 2018-10-9 11:31
我做的表达式求值自定义函数EEVAL,不需要安装.NET Framework,就可以真正实现对长度超过255个字符的计算 ...

你的程序支持EXCEL允许的公式内容吗?比如公式中包含函数SUM(D4:M10)等内容。你觉得66楼“几乎”不完美在哪呢?

TA的精华主题

TA的得分主题

发表于 2018-10-10 11:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ggmmlol 发表于 2018-10-9 11:31
我做的表达式求值自定义函数EEVAL,不需要安装.NET Framework,就可以真正实现对长度超过255个字符的计算 ...

方法三、由于Evaluate宏表函数的参数长度不能超过255字符,是其本身的固有局限,要想完全突破字符长度限制,又进化出两种改进办法:一种是完全放弃Evaluate函数,改用vbs或js的Eval函数方法来求值。另一种是,对表达式做分段拆分,然后分别用Evaluate函数求值。
66楼用的就是上述方法三中的后者!

TA的精华主题

TA的得分主题

发表于 2018-10-10 15:24 | 显示全部楼层
r_zxf 发表于 2018-10-10 11:10
你的程序支持EXCEL允许的公式内容吗?比如公式中包含函数SUM(D4:M10)等内容。你觉得66楼“几乎”不完美在 ...

你既然强烈要求我给你挑刺,那我就随便挑几个吧:


如图所示,你的自定义函数,一是对于最常见的方括号不配对情况都检测不出来,二是对于超过255个字符的基本四则运算和括号运算都完成不了,这就想要评为完美,想的太多了!

捕获.PNG

TA的精华主题

TA的得分主题

发表于 2018-10-10 15:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 r_zxf 于 2018-10-10 15:49 编辑
ggmmlol 发表于 2018-10-10 15:24
你既然强烈要求我给你挑刺,那我就随便挑几个吧:

第一个问题70楼已经指出,我也作了说明,除非用户故意为之,否则是可以避免的。第二个的确属于更小的刺。
既然是文本公式计算,那就应该尽可能与EXCE能接受的公式一样!要不如何谈论完美,你说呢?

TA的精华主题

TA的得分主题

发表于 2018-10-10 15:52 | 显示全部楼层
r_zxf 发表于 2018-10-10 15:40
第一个问题70楼已经指出,我也作了说明,除非用户故意为之,否则是可以避免的。第二个的确属于更小的刺。 ...

1、括号不配对的情况,一定是用户故意才会发生吗?难道你从来没有发生过把括号 漏掉、多输入、输入错的情况?如果都是你说的那样,那么EXCEL的公式输入时,对于括号不配对情况搞出错误提示或自动补全,岂非是多此一举?
2、“与EXCEL能接受的公式一样”,上图所示的A7单元格的表达式,在最前面加上一个“=”号,就是最普通的公式,EXCEL也是和你这一样的计算不出来吗?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 16:23 , Processed in 0.041936 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表