Sheet EnableCalculation Intermitently

时间:2018-02-07 22:51:25

标签: excel vba excel-vba

我正在为我的公司制作电子表格,而我在使用EnableCalculation功能时遇到问题。我们复制大块数据并将其粘贴到工作簿中。为了加快这个过程,我通过将EnableCalculation转为False来“冻结”工作表,如示例所示。

禁用

image description

如果没有这个,Excel会在粘贴数据时进行背景计算时减慢爬行速度。

在粘贴了所有数据后对此工作簿进行计算的宏中,我通过将EnableCalculation设置为True来重新启用计算。

重新启用

image description

然而,我发现的问题是,有时候床单会正确计算,但有时候它们看起来没有韵律或理由。它如此难以预测是非常令人沮丧的。有没有办法确保纸张计算时间?谢谢,

1 个答案:

答案 0 :(得分:0)

是的,有一种方法可以确保工作表的计算时间:重构工作簿,以避免出现瓶颈,迫使您首先将其置于手动计算模式。然后将calc模式切换回Automatic并将其保留在那里!手动计算模式太危险了,几乎总是完全可以避免。

电子表格变得如此之慢以至于用户必须切换到手动计算模式的常见原因包括:

  • 大型的挥发性公式(OFFSET,INDIRECT,TODAY等) 计算链挂掉它们。见my blog post here。我只是通过单独解决这个问题,将重新计算时间从几分钟缩短到几秒钟。
  • 对于可以由SUMIFS处理的案例过度使用SUMPRODUCT 或数据透视表。 See my answer here
  • 对未排序数据执行的资源密集型查找。 See my post here.对排序数据使用二进制匹配可以减少重计时间 分钟。
查尔斯威廉姆斯在finding and optimizing bottle necks here上有一篇很棒的文章。