Excel 365中的Range.Calculate方法是否存在问题

e7arh2l6  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(105)

我试图在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,例如兰德()。

mqkwyuun

mqkwyuun1#

我把“=兰德()”放在活动工作表的[B17]中,它不是“输出”。由于测试执行的结果[Output!B1:B1000]由随机数填充。这意味着Excel按预期工作。
考虑当公式中的所有引用不变时,[B17]将不会重新计算什么。在测试执行期间,[A1:B1000]仅更改单元格。如果[B17]不引用任何这些单元格,则不会重新计算(除了使用的某些函数,如兰德)。

相关问题