2017-06-24 10 views
-1

Excel VBAでOn Error Resume Labelがありますか?答えがいいえの場合、どうしたらいいですか?Excel VBAでOn Error Resume Labelがありますか?

+1

Googleにアクセスしてください。私はこの質問が研究努力を示さず、役に立たないので、私は下降しました。 – CallumDA

+0

この質問をする前に* *研究をしましたか? VBAで文字通り 'On Error Resume Next'と呼ばれています。 – BruceWayne

答えて

3

はいあります。下記を参照してください。

Sub Whatever() 
    On Error GoTo ErrProc 

    '... 

Leave: 
    On Error Resume Next 
    'Clean up 
    On Error GoTo 0 
    Exit Sub 

ErrProc: 
    MsgBox Err.Description, vbCritical 
    Resume Leave 
End Sub 
+0

' ErrProc'で通常のエラーを処理した後も、プログラムのクリーンアップ/リセットセクションにエラーハンドラを含めるのは良い習慣ですか?私はあなたが 'Leave'というラベルの中で' On Error Resume Next'と 'On Error GoTo 0'も使うことを意味します。 – Nicholas

+0

はい、「On Error GoTo 0」というサブを終了する前に、VBAのエラー処理をリセットすることをお勧めします。 'On Error Resume Next'に関して、これはあなたがそれらをクリアしようとするといくつかのオブジェクト参照が無効かもしれないので個人的な好みです。 'rs.Close'(Recorset)または' doc.Close'(Word)です。 –

+0

1.しかし、 'On Error Resume Next'を使用した場合、そうでないときにすべてがクリアされたと思うかもしれません。一方、 'On Error Resume Next'を追加しないと、デバッガでエラーをトリガする正確な行(たとえば、参照できないオブジェクト)を見つけることができます。 2. On Error GoTo 0'については、一旦 'Whatever'を終了すると、VBAは通常のエラーチェック動作を再開します(私が間違っていれば私を修正します)。基本的に、あなたは' On Error Resume Next'は 'Whave'を呼び出すサブのエラー処理設定に影響します。 – Nicholas

関連する問題