当我在 Excel 中执行我的代码(需要 3-4 分钟才能执行)时,我在 excel 或我的用户表单中单击某些内容,它会冻结、变白、几乎崩溃......当执行准备好时,一切都很好了.
执行过程中不能在excel中工作当然是正常的,但是如何避免excel的“崩溃”呢?
代码中有循环吗?
如果是这样,请在初始化循环后添加以下行,它应该有助于解决您的问题!
DoEvents
防止此类问题的最佳方法是对代码进行基准测试以确定需要这么长时间的原因。如果您的代码运行时间超过 3 分钟,那么您几乎可以肯定还有优化空间。
以下是您需要采取的步骤:
一个臭名昭著的性能缓慢的反模式是在循环中选择事物。
在确保没有导致 excel 无响应的无限循环后,请尝试优化您的代码。
我发现这是一本关于 vba-excel 代码优化的非常有趣的读物,其中一些实践实际上对我编写的一个大而耗时的模块产生了影响。希望能帮助到你。
您需要做的是创建一个覆盖 Excel UI 的自定义 UserForm,例如Progress Bar。您还需要研究强制表单保持在顶部的方法,就像modal form
. 您不能使用modal form
's,因为它们会停止执行。