1

当我在 Excel 中执行我的代码(需要 3-4 分钟才能执行)时,我在 excel 或我的用户表单中单击某些内容,它会冻结、变白、几乎崩溃......当执行准备好时,一切都很好了.

执行过程中不能在excel中工作当然是正常的,但是如何避免excel的“崩溃”呢?

4

4 回答 4

4

代码中有循环吗?

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

DoEvents
于 2017-03-03T06:00:02.307 回答
2

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

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

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

一个臭名昭著的性能缓慢的反模式是在循环中选择事物。

于 2013-03-16T04:47:12.080 回答
0

在确保没有导致 excel 无响应的无限循环后,请尝试优化您的代码。

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

于 2013-03-22T16:38:08.277 回答
0

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

于 2013-03-15T16:33:21.660 回答