为什么VBA会说"(没有回复)"即使代码运行正常?

时间:2015-02-12 21:19:16

标签: excel vba excel-vba

我使用许多不同的VBA程序遇到了这个问题,所以我想我可能在Excel或VBA编辑器中有一些不正确的设置。老实说,经过大量的网络搜索,我很无能为力。

基本上,我将运行一段正常的代码,应用程序(Excel和VBA编辑器)将进入(无响应)模式。 但是代码运行正常。代码完成后,应用程序将不再处于非响应模式,一切都恢复正常

对于那些认为出现问题的用户来说真的有点沮丧,因为他们只是需要一段时间来运行代码。

任何帮助都会很棒!谢谢!

2 个答案:

答案 0 :(得分:5)

尝试在代码中添加DoEvents语句,以便在漫长的过程中经常执行DoEvents。见http://support.microsoft.com/kb/118468/en-us

这会将控制权返回给操作系统,这样操作系统就可以在程序运行时完成它需要做的事情,这可以防止操作系统认为你的程序没有响应。

答案 1 :(得分:0)

  

基本上,我将运行一段正常的代码,应用程序(Excel和VBA编辑器)将进入(无响应)模式。但是代码运行正常。代码完成后,应用程序将不再处于非响应模式,一切都恢复正常

用户界面没有响应,因为您正在进行一系列处理以响应UI事件。

如果这对您和您的用户来说是可以接受的,那么一切都很好。如果没有,请考虑在background thread上完成工作。