我有一段代码可以进行大量计算,包括数组,该代码运行良好,但有一行在计算时没有更新。
为了计算该范围(即上述行的总和),我使用:
Application.ScreenUpdating = True
Application.Range(Worksheets("Report2").Cells(40,4).Address & ":" & Worksheets("Report2").Cells(41, 33).Address).Dirty
Application.Range(Worksheets("Report2").Cells(40,4).Address & ":" & Worksheets("Report2").Cells(41,33).Address).Calculate
Application.ScreenUpdating = False
如果有人能对此提供任何启发,那就太好了。 谢谢。
Rgds, 罗德内伊
最佳答案
也许您处于自动计算模式并且 Report2 不是事件工作表:
Range.Dirty 有问题,并且始终在事件工作表上工作
Range.Calculate 在自动模式下不会重新计算未弄脏的单元格。
参见http://www.decisionmodels.com/calcsecretsg.htm对于 Range.Calculate 的其他限制
和http://www.decisionmodels.com/calcsecretsh.htm有关使用 VBA 计算公式的更多信息。
关于vba - Range.Calculate 不更新单元格中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762841/