2013-08-07 44 views
0

我想寫一個VBA宏,它在同一個excel文件中分析多張數據。我現在設置了它,以便在分析所有不同的工作表時,當它發現錯誤時,它會完全停止程序。我已經想出瞭如何讓它去到下一張表,但無法讓程序繼續運行。以下是我迄今爲止:繼續一個功能

`If Counter > 480 Then 
     Worksheets(ActiveSheet.Index + 1).Select 
     End 
    End If` 

我知道結局函數結束正在運行的程序,但我把它拿出來的時候它不工作,我怎樣才能讓程序繼續運行,因爲這是它到達之前有錯誤的表單?

+1

什麼ü要選擇表後怎麼辦? –

+1

因此您希望程序在工作表中發現錯誤後繼續執行? – Katana24

+0

@ Katana24是的,這正是我想要它做的 – AM847

回答

0

將要在一個單獨的函數或子結束循環,那麼當發現錯誤,使用

Exit Function 

Exit Sub 

如果它是一個子。使用你的代碼

簡單的例子:

Sub Main 
    OtherSub 
    'Continue here 
End Sub 

Sub OtherSub 
    If Counter > 480 Then 
     Worksheets(ActiveSheet.Index + 1).Select 
     Exit Sub 
    End If 
End Sub 
+0

是否允許程序繼續運行?這是宏的一小部分,我在整個vba宏的末尾有一個end sub – AM847

+0

我剛剛更新了我的答案。如果你把你想停止的部分代碼放在一個單獨的子函數中並從那裏運行,那麼如果你使用退出函數,它會返回到前一個子函數並從那裏繼續。 – mattboy

+0

所以它會是這樣嗎? '子錯誤 如果計數器> 480然後 工作表(ActiveSheet.Index + 1)。選擇 結束 結束如果 退出Sub' 很抱歉的語法 – AM847