Excel在执行期间冻结

当我在Excel中执行我的代码(需要3-4分钟执行)时,我点击了一些在Excel中或在我的用户表单,它冻结,变白,几乎崩溃…当执行准备好了,一切都很好。

当然,在执行期间我不能在excel中工作是正常的,但是我怎样才能避免excel的“崩溃”呢?

防止这类问题的最好方法是基准你的代码,以确定是什么花了这么久。 如果你的代码需要花费3分钟才能运行,那么你几乎可以肯定有优化的空间。

以下是您需要采取的步骤:

  1. 在正在执行的代码中设置多个断点。
  2. 时间从一个断点到下一个断点需要多长时间。
  3. 一旦你确定了罪魁祸首,重构。
  4. 如果您无法提高性能,请发布效率低下的代码并寻求帮助。

一个臭名昭着的缓慢的反模式,是在循环中select的东西。

你有代码中的循环?

如果是这样,请在初始化循环后添加以下代码行,它将帮助您解决问题!

DoEvents 

你需要做的是创build一个自定义的用户窗体覆盖Excel用户界面,就像一个进度栏 。 你也想看看如何强制你的表单保持ontop,就像一个modal form 。 你不能使用modal form ,因为他们停止执行。

确保没有无限循环让excel无响应之后,尝试优化代码。

我发现这是一个关于vba-excel代码优化的非常有趣的阅读,其中一些实践实际上对我写的一个耗时的模块有影响。 希望能帮助到你。