2013-03-21 8 views
8

On Error GoTo 0リセットエラー処理の印象を受けました。エラー時にエラーが発生しました0エラートラップがリセットされていません

なぜOn error resume nextは以下のように登録されていないようですか?

Sub GetAction() 
Dim WB As Workbook 
Set WB = ThisWorkbook 

On Error GoTo endbit: 
'raise an error 
Err.Raise 69 
Exit Sub 
endbit: 
On Error GoTo 0 '<<<reset error handling? 

On Error Resume Next 
WB.Sheets("x").Columns("D:T").AutoFit 
MsgBox "ignored error successfully and resumed next"  

End Sub 
+0

@OleleSjögrenこの記事ではExcelに特有のものがたくさんあるので、他のすべてのOffice製品に関連する質問を書き直すことなく、一般的なVBAタグは適切ではないと思います。同じ問題を抱えている人に重複を強制するのは不公平です。 – Fionnuala

+0

より一般的な質問はhttp://stackoverflow.com/questions/14158901/difference-between-on-error-goto-0-and-on-error-goto-1-vba/14159999#14159999として引用されています以下。 – Fionnuala

+0

@Remou問題ありません。私は「On Error GoTo -1」の回答が[tag:VBA]タグを保証するのに十分な一般的なものであると感じました。 –

答えて

6

あなたは、エラートラップをリセットするためにOn Error GoTo -1またはErr.Clearを使用する必要があります。

チェックthis answer私は数ヶ月前に詳細な説明を掲載しました。

+0

+1この感想は、短くて甘い答え – whytheq

+1

笑 - このリンクはスポットです - 本当に私の質問は重複しているようです - 私は投票しました – whytheq

+0

'Err.Clear'は別のエラーハンドラの設定を許可していないようです。別の 'On Error ... 'を設定する前に' On Error GoTo -1'で必要な結果しか得られません(エラーがあれば数行をスキップし、もう一度同様のことをします)。http: /stackoverflow.com/questions/11998836/excel-vba-on-error-goto-statement-not-working-inside-for-loop/31543829#31543829 –

関連する問題