2009-11-09 100 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

相關問題