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

Tha*_*sis 12 excel vba enter cell excel-formula

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

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

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

有什么建议吗?这件事让我抓狂.

小智 14

执行摘要/ TL; DR:
尝试使用"="查找和替换"=".是的,用自己替换等号.对于我的场景,它强制一切都要更新.

背景:
我经常跨多个列创建公式,然后将它们连接在一起.完成后,我会将它们复制并粘贴为值以提取我创建的公式.在此过程之后,除非我进入单元格并按Enter键,否则它们通常会显示公式而不显示值.反复按F2和Enter并不好玩.

  • 这样一个优秀而简单的解决方案,可以在 Excel 2016 中使用。我将其创建为宏来自动执行此操作: `Sub InternalRefresh() Cells.Replace What:="=", Replacement:="=", LookAt:=xlPart, SearchOrder _ :=xlByRows、MatchCase:=False、SearchFormat:=False、ReplaceFormat:=False End Sub` (3认同)
  • 你救了我的命。谢谢你的 jugaad (2认同)

Car*_*son 13

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

功能区中的位置

手动计算可用于减少计算负荷并提高具有大量公式的工作簿中的响应性.我们的想法是,您可以查看数据并进行更改,然后选择何时使计算机完成计算工作.

  • 不,正如我所说,计算设置为自动,所以问题不存在.但是,谢谢您的快速回复. (4认同)

小智 7

找到了问题,直到尝试过才找到解决方案。

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

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


小智 6

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