我试图在excel中使用range.calculate来限制重新计算工作簿所需的时间。然而,当代码执行我试图计算的单元格时,它永远不会更新。
我的代码
Sub Test()
Application.CalculateFullRebuild
Application.Calculation = xlCalculationManual
For n = 1 To 1000
[B8] = n
[B17].Calculate
ThisWorkook.Sheets("Output").Cells(n, 1) = n
ThisWorkook.Sheets("Output").Cells(n, 2) = [B17]
Next n
End Sub
字符串
单元格B17包含同一工作表上的短范围的总和。
如果我计算整个工作表而不是单个单元格,它可以正常工作,但需要很长时间。这种行为不是我从文档中期望的结果。是否有解决方法或任何指导如何使range.calculate行为与文档一样?
其他尝试的东西是:[B17]。脏没有区别。计算确实工作,如果我把一个不同的公式在B17,例如兰德()。
1条答案
按热度按时间mqkwyuun1#
我把“=兰德()”放在活动工作表的[B17]中,它不是“输出”。由于测试执行的结果[Output!B1:B1000]由随机数填充。这意味着Excel按预期工作。
考虑当公式中的所有引用不变时,[B17]将不会重新计算什么。在测试执行期间,[A1:B1000]仅更改单元格。如果[B17]不引用任何这些单元格,则不会重新计算(除了使用的某些函数,如兰德)。