如何解决在EXCEl中函数evaluate的计算式长度限制的问题

我用的是07版office,工作是建筑行业,经常要做含有混合四则运算的计算式,而且很长,我用“名称管理器”新建名称,然后在“引用位置”输入“EVALUATE(Sheet1!A1)”,在后面一个单元格应用该名称,就可以在单元格A1中输入计算式,后面则自动出结果。但计算式过长的话就无法出结果。听说是255个字符限制,如何解决这个问题呢。希望高手帮忙。感激不尽~~
在Excel中可以用evaluate()函数求文本型数学表达式的计算结果,不过Evaluate有个缺陷,使用它时字符数不能超过一定的量(可能是255个),这个时候可以采用Eval函数来实现EValuate的功能,操作方法如下:
1. 新建一EXCEL工作簿BOOK1.xls,打开;
2. 按Alt+F11打开VB编辑器,插入一模块;
3. 在模块中输入一下代码、自定义一函数DEva():
Function DEva(Cell)
With CreateObject("MSScriptControl.ScriptControl")
.Language = "vbscript"
DEva = .Eval(Cell)
End With
End Function
4. 关闭后可以在单元格里直接调用DEva()来计算文本型数学表达式的计算结果。
我用了这种方法,有的可以用,有的没法用。不知怎么回事啊。。。

可以把计算式在适当的位置 分成2段 比如说 1+2+1+1
分别将 1+2 输入 A1 1+1输入 B1
引用位置输入 EVALUATE(Sheet1!A1&"+"&SHEET1!B1)追问

能不能在编辑器中重新录入一个新的函数。修改字符限制啊。。。

追答

这个是EXCEL本身的限制,应该够呛,也不知道怎么修改,

追问

唉。。。纠结。。。百度上说的用宏编辑器,说的都不清。。。。。

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-08-04
可以分开命名如
想要计算1+3*5/6+6+7*10*14*42(只是假如)
那就命名
计算1=1+3*5/6+6
计算2=7*10*14*42
计算3=计算1+计算2
这样就可以 了 ,大概思路就是这样
第2个回答  2013-04-28
Dim Expression '该变量用于附给计算公式或数值
If Len(Expression) <= 254 Then '计算不超过254字符的字符串计算式
Expression = Evaluate("=" & Expression)
Else '计算超过254字符的字符串计算式
With CreateObject("MSScriptControl.ScriptControl")
.Language = "vbscript"
Expression = .Eval(Expression)
End With
End If
第3个回答  2012-08-05
输入以后,同时按住crtl、shit、enter追问

输入什么以后

第4个回答  2012-08-04
如果公式规则基本一致,可以将一个单元格的公式折分到两个单元格中去(但保证切点一致)
通过两个单元格去计算就可以了.追问

具体做法。。。还有能否像网上说的在宏里面自定义一个可以达到要求的函数。。。

追答

要看你的表格.加510809100,看了你的数据后或许能找到一些思路

如何解决在EXCEl中函数evaluate的计算式长度限制的问题
可以把计算式在适当的位置 分成2段 比如说 1+2+1+1 分别将 1+2 输入 A1 1+1输入 B1 引用位置输入 EVALUATE(Sheet1!A1&"+"&SHEET1!B1)

如何解决在EXCEl中函数evaluate的计算式长度限制的问题 你问的这个问...
试下将其中部分计算式再定义为一个名称,然后在该函数中引用。

excel的evaluate函数错误
EVALUATE是宏表函数,与SQRT和POWER等函数不在一个范畴,也没有函数可以替代。关键是这样的函数运用时表达式不应该很长,只是指向了具体的位置,比如=EVALUATE(Sheet1!$A1) 这样通过定义名称计算A1单元格表达式的结果。可以将问题图片截图上来,供大家理解支招!

EXCLE中公式=EVALUATE($K28)有参数或者是字符225限制怎么突破?求大师详 ...
EXCEL中,需要定义名称=EVALUATE($K28),然后在单元格中=名称

Excel表格单元格计算式求和出错
就形成了表达式 不知道你怎么求的和 sum及一般函数式可以不行 有三种方法可以解决问题 1、使用定义名称法,定义名称名称为求和 公式输入:=Evaluate(对应求和的单元格地址)然后再单元格中输入=求和即可 2、在要求和的地址中输入“=”&表达式地址 然后分列完成 3、VBA法,在VBA中是用宏表函数处理 ...

延长excel表格算式自动计算的有效位数
计算式长度超过255出错。分成几截算,如 =evaluate(left(a1,255))+evaluate(right(a1,len(a1)-255))如果算式不能截断,就只能想其他办法了。255是Excel的限制,不能超过。其他方法就是尽量简化算式,或先算公式中的某部分、某几部分。

excel中用evaluate编辑计算式子结果,在第二次打开时计算结果为什么显示...
因为未启用宏。evaluate是宏表函数,必须启用宏才能有效。解决办法:打开EXCEL,把宏安全性设置为“中”或“低”,关闭EXCEL,再重新打开EXCEL,在提示时选择启用宏。

EVALUATE在Excel中不能用,怎么办?
1、首先选中Excel表格,双击打开。2、然后在该界面中,选中数据源单元格。3、其次在该界面中,右键点击“设置单元格格式”选项。4、然后在弹出窗口中,选择“文本”格式,点击“确定”按钮。5、然后在该界面中,选中要显示EVALUATE函数结果的单元格。6、接着在该界面中,点击公式栏中“插入函数”按钮。...

excel中EVALUATE不能用是什么原因
Excel中`EVALUATE`函数不能用的原因可能涉及多个方面。首先,值得注意的是,`EVALUATE`函数并非Excel内置的标准函数,这可能是导致其无法直接使用的最主要原因。Excel用户通常通过VBA(Visual Basic for Applications)编程来模拟`EVALUATE`函数的功能,因为VBA提供了更加强大和灵活的编程能力来处理复杂的公式计算...

excel中evaluate函数不能拖
比如 B1=evaluate(A1)注意要下拉的时候 里面A1不要锁定 你看看你里面是不是+了$符号 把符号去掉

相似回答