性能问题与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(),问题已经消失,但运行需要更多的时间。

有关这个问题的任何线索? 非常感谢。

莱亚尔