2009-11-09 141 views
1

我正在使用应用程序运行按顺序调用几个宏。在调用另一个宏之前,Excel等待一个宏完成

Sub Run_All_Macros() 
    Application.Run ("Macro_1") 
    Application.Run ("Macro_1") 
End Sub 

当我启动Run_All_Macros时,所有的宏并行运行。有没有办法在第二个开始之前等待第一个宏完成?

+2

这似乎很奇怪。 'Application.Run'是同步的。调用Application.Run(“Macro_1”)将不会返回,直到宏完成执行。也就是说,如果宏启动了一个异步进程,那么你可能会得到你描述的效果。 这些宏是做什么的,你有什么证据表明这些宏是并行运行的? – 2009-11-09 20:44:13

+0

第一个从网络共享中复制文件的内容,第二个将公式添加到列中。 我相信它们在同一时间运行,因为当第一个宏打开文件并执行其内容副本时,我看到公式被填充和覆盖。 – 2009-11-09 21:05:22

回答

3

如果您逐步浏览宏(使用F8),您应该看到它们按顺序运行而不是同时运行。

我使用step through方法准确观察发生了什么以及按什么顺序。我经常发现我在逻辑或其他方面包含了一个错误,而这个错误并没有给出理想的结果。

+0

你说得对,错过了我的逻辑 – 2009-11-09 22:04:58

相关问题