Excel在执行期间冻结

时间:2013-03-15 15:47:43

标签: excel vba excel-vba

当我在Excel中执行我的代码(需要3-4分钟才能执行)时,我点击excel或我的userform中的某些内容,它会冻结,变白,几乎崩溃......当执行准备就绪时再好了。

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

4 个答案:

答案 0 :(得分:3)

代码中是否有循环?

如果是这样,请在初始化循环后添加以下行,它应该有助于解决您的问题!

DoEvents

答案 1 :(得分:1)

防止出现这类问题的最佳方法是对代码进行基准测试,以确定需要花费的时间。如果您的代码运行时间超过3分钟,那么您几乎肯定还有优化空间。

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

  1. 在正在执行的代码中设置多个断点。
  2. 从一个断点到下一个断点所需的时间。
  3. 一旦你确定了罪魁祸首,重构。
  4. 如果您无法提高效果,请发布效率低下的代码并寻求帮助。
  5. 一个臭名昭着的缓慢反模式是在循环中选择事物。

答案 2 :(得分:0)

您需要做的是创建一个覆盖Excel UI的自定义UserForm,如Progress Bar。您还需要研究如何强制您的表单保持在顶部,就像modal form一样。你不能使用modal form因为它们停止执行。

答案 3 :(得分:0)

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

我发现this是关于vba-excel代码优化的非常有趣的读物,并且一些实践实际上对我编写的大而耗时的模块产生了影响。希望它有所帮助。