Excel自动计算崩溃,但手动计算有效

时间:2017-07-05 13:52:19

标签: excel excel-vba vba

我有一个相对较大(7MB)但更重要的公式和宏重excel文件,我最近一直在开发。 对于最终用户,它必须能够在自动计算模式下使用。

使用F9(立即计算)在手动计算模式下计算整张纸时,将在~10秒内工作并计算,但当我将其转为自动模式时,它将重复计算(即到达100%,然后立即从0%立即开始),因此无限期冻结。

到目前为止,我已经尝试过:

  1. 在所有VBA宏中放置断点以查看它是否挂在宏
  2. 从文件中删除所有宏(我担心其中一个宏被触发以自动模式重复运行)
  3. 但两项工作都没有让我怀疑这个问题与VBA事实上是否相关。

    有没有人对此有任何想法:

    • 可能导致这种情况的原因是什么?
    • 我如何诊断原因?

    如果有帮助,很乐意提供更多背景信息。我是一个相对有经验的excel用户,虽然一般不从头开始编写VBA宏,但我非常有信心重新编写代码,我继承/在线查找。我正在使用一台相对强大的6核机器,但已经在其他机器上测试过相同的结果。

1 个答案:

答案 0 :(得分:0)

该问题原来是一个宏触发的动荡行为。我有一个通过隐藏空行循环的宏,但隐藏行是易失性的,因此在下一次循环运行之前触发一个新的计算。循环本身是500次迭代,这意味着500套3秒计算!

有关易变行为的更多信息,请参阅此链接:

https://msdn.microsoft.com/en-us/library/bb687891(v=office.15).aspx