性能问题与range.calculate()
当我在VBA中使用range.calculate()时,遇到了一个问题。 以下是情况:
- 32位Excel 2010版本; Windows 7的
- 50Klogging作为input,逐一处理;
- 运行时,excel使用〜400M内存;
- 链接build立在excel选项卡中; 小区之间的链接不是从左到右,从上到下的规则。 有很多来回的链接。
- 在VBA中调用worksheet.range.calculate()来计算单元格;
码:
... Application.Calculation = xlManual Worksheets("Curve").Range("A1:BO600").Calculate ...
问题:
-
基于Microsoft指令,Excel 2010中的Range.Calculate解决了所计算范围内的依赖关系。 但基于我的debugging,Range.calculate()从左到右和从上到下计算单元格,忽略所有的依赖关系,就像excel 2000版本一样。 然后下一条logging的计算将使用前一条logging的结果(现在存储在Excel单元格中),而不是自己logging的刷新结果,因为依赖的单元格可能尚未计算。
-
每次运行我的模型时都不会重复。 我在2个月前遇到了这个问题,在重新启动我的电脑并自动应用一些Windows更新之后,问题消失了,并且Range.Calculate()在过去的两个月内按预期工作。 现在的问题回来了,我不能摆脱它与PC关机,或Excelclosures。
-
更重要的是,如果我切换到worksheet.calculcate(),问题已经消失,但运行需要更多的时间。
有关这个问题的任何线索? 非常感谢。
莱亚尔