2017-01-11 1 views
0

Ich habe eine Frage über die On Error GoTo. Ich habe diese Zeile CodeBei Fehler in einem If, reagiert es auf einen Fehler auf dem Sub?

If CheckF = 0 Then 
     On Error GoTo Error_handler 
     .PivotItems(.PivotItems(pivotcount).name).Visible = False 


    End If 

Meine Frage ist, dass, wenn ich außerhalb dieser if einen Fehler habe sie auslösen die On Error sowieso

Und wenn das der Fall ist, würde Ich mag einen Weg, um zu vermeiden, es, weil ich für jeden anderen Fehler eine andere Art von Nachricht benötige.

Ich hoffe ich habe mich selbst erklärt.

Antwort

3

In Ihrem Beispiel wird alles, was nach der On Error-Anweisung ausgeführt wird, auch nach der End If-Anweisung zur Fehlerbehandlungskennzeichnung weitergeleitet. Wenn Sie diese Fehlerbehandlungsroutine deaktivieren möchten, müssen Sie sie wie folgt zurücksetzen:

If CheckF = 0 Then 
    On Error GoTo Error_handler 
    .PivotItems(.PivotItems(pivotcount).name).Visible = False 
    On Error GoTo 0 
End If 
+0

Wenn ich das mache, und der 'Error_handler' den 'On Error Goto 0' auslöst, wird er nicht richtig aktiviert? – VVV

+1

'On Error GoTo 0' schaltet jegliche Fehlerbehandlung aus. VBA stoppt einfach an der Zeile, in der der Fehler auftritt (wie es normalerweise der Fall ist). Sie können das in 'Error_handler' machen, aber es ist ein falscher Weg. In 'Error_handler' sollten Sie' Resume' verwenden oder zu einem anderen Label wechseln. Es empfiehlt sich, entweder die Fehlerbehandlung für das gesamte Subsystem einzuschalten und alle Fehler zu behandeln oder die Fehlerbehandlung "auf der gleichen Ebene" ein- und auszuschalten (aka wie im obigen Beispiel). –

+0

Sieht so aus, als ob die [On Error Statement] (http://stackoverflow.com/documentation/vba/3211/error-handling#t=201701111543262206472) Dokumentation dies erwähnen muss :-) –

0

Nur wenn die if-Klausel ausgeführt wird. Mit On Error GoTo 0 können Sie Ihre Fehlerbehandlung am Ende der if-Klausel deaktivieren.

+0

Können Sie es ein wenig ausarbeiten? Ich verstehe nicht, wie es funktioniert – VVV

Verwandte Themen