除非我按Enter键,否则Excel不会更新值

除非我按Enter键,否则Excel不会更新值,excel,vba,excel-formula,cell,enter,Excel,Vba,Excel Formula,Cell,Enter,我在工作簿中的一张工作表上有一个非常恼人的问题。我正在使用Excel2007。除非我按ENTER键,否则任何单元格的值都不会更新。如果单元格中的公式包含if条件,或VLOOKUP函数,甚至是平均函数。所有计算都设置为自动,Application.Calculation=xlAutomatic,甚至启用了特定工作表的计算,如:ws.enablecomplation=TRUE 此外,屏幕更新设置为TRUE。在我按下回车键或拖动右角后,单元格将被更新,如果我做了任何更改,它们将不断更新。但是,保存文件

我在工作簿中的一张工作表上有一个非常恼人的问题。我正在使用Excel2007。除非我按ENTER键,否则任何单元格的值都不会更新。如果单元格中的公式包含if条件,或VLOOKUP函数,甚至是平均函数。所有计算都设置为自动,Application.Calculation=xlAutomatic,甚至启用了特定工作表的计算,如:ws.enablecomplation=TRUE

此外,屏幕更新设置为TRUE。在我按下回车键或拖动右角后,单元格将被更新,如果我做了任何更改,它们将不断更新。但是,保存文件并重新打开后,它们将再次冻结。我还没有弄清楚它们何时会停止更新。所有格式都设置为“常规”或“数字”

特别是在IF条件下,当我通过evaluate功能检查计算时,结果是正确的,但不会在屏幕上传递


有什么建议吗?这件事快把我逼疯了。

听起来你的工作簿被设置为手动计算。通过转到公式>计算>计算选项>自动,可以将其更改为自动


在包含大量公式的工作簿中,手动计算有助于减少计算量并提高响应速度。这个想法是,你可以查看数据并进行更改,然后选择何时让你的计算机进行计算。

我和这里的那个家伙有同样的问题:Application.calculateful我解决了我的问题。然而,我担心如果这种情况再次发生。我将尝试不再使用EnableCalculation。

执行摘要/TL;博士: 尝试使用=,查找并替换=。是的,将等号替换为自身。在我的场景中,它强制所有内容更新

背景:
我经常跨多个列创建公式,然后将它们连接在一起。这样做之后,我将复制并粘贴它们作为值,以提取我创建的公式。在这个过程之后,它们通常会显示公式,而不显示值,除非我输入单元格并按enter键。反复按F2键和Enter键并不有趣。

我以前遇到过这个问题。我怀疑是你的一些单元格链接到了其他表格,其他表格返回的是哪个名字?最终导致当前工作表无法进行计算


尝试解决链接的其他工作表

这听起来不太直观,但选择您遇到问题的列,使用文本到列,然后按finish。这也是Excel帮助中的建议答案。由于某种原因,in将文本转换为数字。

我也遇到了同样的问题。在我的例子中,在任何内部函数周围添加括号以使它们首先进行求值似乎可以做到这一点:

改变

=SUM(A1, SUBSTITUTE(A2,"x","3",1), A3) 


发现问题,在尝试此操作之前无法找到解决方案

从“开发人员”选项卡打开Visual Basic,或在任意工作表上单击鼠标右键 然后单击“查看代码” 在左上面板中,选择“ThisWorkbook” 在左下面板中,找到“强制计算”属性 将其从“False”更改为“True”,然后保存它
我不确定这是否有任何副作用,但它现在对我有效。

选择所有数据并使用“文本到列”选项,这将允许您的数据应用数字格式
埃里克

不,正如我所说,计算设置为自动,因此问题不存在。不过,感谢您的及时回复。菜单栏在深绿色背景的最新Mac版本上看起来有些不同,但位置大致相同。我和一位同事谢谢你!如果计算肯定没有被禁用,那么我猜你有一个循环引用问题。我检查了所有工作表,其中没有一个在就绪旁边的状态栏中有循环引用。此外,在“公式”选项卡中禁用了“检查循环引用”选项。是否只有一张工作表?如果是这样,您是否在该工作表上使用过EnableCalculation来禁用计算?我使用过此标志,但现在即使我在所有工作表中将此标志设置为True,问题也没有得到解决。我以前听说过使用该属性导致问题的实例。我会尝试重新制作那张床单,你救了我的命。感谢jugaadSuch,这是一个优秀而简单的解决方案,可在Excel 2016中使用。我创建了一个宏来自动执行它:子内部刷新单元格。替换内容:==,替换:==,查看:=xlPart,SearchOrder:=xlByRows,MatchCase:=False,SearchFormat:=False,ReplaceFormat:=False结束子项对我来说很有效,但我仍然不明白为什么有必要这样做。这似乎是Excel中的一个错误。这对我来说很有效,但我希望我能用编程的方式解决它。先生,你是一个救命恩人。这很有效,但有大量的副作用,可以用来对付Excel的愚蠢怪癖。尤其是当你说上千行的时候。
=SUM(A1, (SUBSTITUTE(A2,"x","3",1)), A3)