【问题标题】:Excel doesn't update value unless I hit Enter除非我按 Enter,否则 Excel 不会更新值
【发布时间】:2015-09-26 10:22:11
【问题描述】:

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

此外,ScreenUpdating 设置为 TRUE。在我按下 ENTER 或向下拖动右角后,单元格将被更新,如果我进行任何更改,它们将继续更新。但是,在保存文件并再次重新打开后,它们将再次被冻结。我还没有弄清楚他们什么时候会停止再次更新。所有格式都设置为常规或数字。

特别是在IF条件下,当我通过评估功能检查计算时,结果是正确的但它没有在屏幕上传递。

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

【问题讨论】:

  • 如果计算肯定没有被禁用,那么我猜你有一个循环引用问题。
  • 我检查了所有工作表,但没有一张在就绪旁边的状态栏中有循环参考。此外,“公式”选项卡中的“检查循环参考”选项被禁用
  • 只有一张工作表吗?如果是这样,您是否曾在该表上使用过EnableCalculation 来禁用计算?
  • 我使用过这个标志,但现在即使我在所有工作表中将此标志设置为 True,问题也没有解决。
  • 我以前听说过使用该属性会导致问题的实例。我会尝试重新创建该表。

标签: excel vba excel-formula cell enter


【解决方案1】:

执行摘要 / TL;DR:
尝试用“=”查找和替换“=”。是的,用自己替换等号。对于我的场景,它强制所有内容更新。

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

【讨论】:

  • 你救了我的命。谢谢你的jugaad
  • 如此出色且简单的解决方案,可在 Excel 2016 中使用。我将其创建为宏以自动执行此操作:Sub InternalRefresh() Cells.Replace What:="=", Replacement:="=", LookAt:=xlPart, SearchOrder _ :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False End Sub
  • 这对我有用,但我仍然不明白为什么它是必要的。这似乎是 Excel 中的一个错误。
  • 这对我有用,但希望我能以编程方式解决它。
【解决方案2】:

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

手动计算有助于减少计算负载并提高具有大量公式的工作簿的响应能力。这个想法是您可以查看数据并进行更改,然后选择何时让您的计算机完成计算。

【讨论】:

  • 不,正如我所说,计算设置为自动,所以问题不存在。不过感谢您的及时回复。
  • 菜单栏在最近的 Mac 版本(深绿色背景)上看起来有些不同,但位置大致相同。我和同事谢谢你!
【解决方案3】:

发现了问题,直到尝试了这个才找到解决方案。

  1. 从“开发人员”选项卡打开 Visual Basic(或右键单击任何工作表 并点击“查看代码”)
  2. 在左上方面板中,选择“ThisWorkbook”
  3. 在左下面板,找到“ForceFullCalculation”属性
  4. 将其从“False”更改为“True”并保存

我不确定这是否有任何副作用,但它现在对我有用。

【讨论】:

【解决方案4】:

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

【讨论】:

    【解决方案5】:

    我和那个人有同样的问题:mrexcel.com/forum/excel-questions/318115-enablecalculation.htmlApplication.CalculateFull卖掉了我的问题。但是,我担心这种情况会再次发生。我会尽量不要再使用EnableCalculation

    【讨论】:

      【解决方案6】:

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

      【讨论】:

      • 解决问题的绝妙技巧胜过愚蠢的怪癖。尤其是当您谈论数千行时。
      【解决方案7】:

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

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

      【讨论】:

        【解决方案8】:

        我也遇到了这个确切的问题。就我而言,在任何内部函数周围添加括号(让它们首先评估)似乎可以解决问题:

        改变了

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-05-14
          • 1970-01-01
          • 2023-01-06
          • 1970-01-01
          • 2021-08-23
          • 2016-10-15
          • 1970-01-01
          • 2016-04-17
          相关资源
          最近更新 更多