首页 > 解决方案 > 公式对引用单元格的更改值输入无响应

问题描述

最接近我的问题没有得到满意的答案。

插入的带有单元格引用的公式无法识别新输入

在启用宏的特定工作簿中,当引用单元格中的数据发生更改时,宏生成的公式不会更改输出值。例如,我可以在引用的单元格中输入一些数字,包含公式的单元格将显示计算出的数字,但在更改引用中的数据时,这些数字不会改变。在同一工作簿中手动键入的公式显示相同的行为,无论是在范围对象内或范围外,还是在此工作簿内的非宏生成的工作表中。它似乎并不特定于任何特定的公式。

我检查了单元格的格式是否为数字并且公式是否有效。计算值后,公式仍会出现在单元格中。

在不启用宏的情况下重新加载同一工作簿会显示公式正常工作。

在另一个启用宏的工作簿中没有观察到问题。

我在 VBA 编辑器中检查了属性设置,发现它们之间没有区别。

似乎正在发生与宏启用相关的事情,而不是任何导致公式变得无响应的特定代码,但我很难理解这可能是什么。

这是我注意到问题的公式:

在 "=d4:d21" 中,数组公式 "{=IF(ISNUMBER(C4:C21), C4:C21/C3, "0")}"

即使像“=average(f4:f6)”这样将简单的公式放在工作表上的任何位置,也会出现此问题。

我认为创建包含这些代码行的宏是问题开始的时候,但它们并不特定于它:

Sub CreateDataSheet()

Sheets.Add After:=ActiveSheet
Range("d4:d21").Select
Selection.FormulaArray = _
"=IF(ISNUMBER(RC[-1]:R[17]C[-1], RC[-1]:R[17]C[-1]/R[-1]C[-1], ""0"")"

End Sub

我怎样才能让这些公式再次起作用?

标签: excelvbaexcel-formulaexcel-2013

解决方案


工作簿中的计算设置为“手动”,我将其更改为“自动”。这些公式现在有效。


推荐阅读