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