2017-10-11 3 views
0

Ich versuche, alle Arbeitsblätter in einer bestimmten Arbeitsmappe zu durchlaufen und zu versuchen, die Formatierung von einem Arbeitsblatt zu einem anderen zu kopieren. Ziel ist es, das entsprechende Arbeitsblatt zu finden, das den gleichen Namen hat, aber mit "(FF)" angehängt ist. Dann möchte ich das Format dieses Blattes auf das Blatt kopieren, das nicht die angehängte Version von "(FF)" enthält. Leider enthalten nicht alle Blätter das entsprechende Blatt mit dem angehängten "(FF)". Nachdem ich das gesagt habe, habe ich das Makro geschrieben, um mir dabei zu helfen, irgendwelche "Index-außerhalb-des-Bereichs" -Fehler durchzulesen, indem ich es an einen Error Handler sende. Das Problem ist, wenn man dies in einer Arbeitsmappe testet, wo kein Blatt ein entsprechendes Blatt hat, angehängt an "(FF)", bläst es nur durch den ersten "Index außerhalb des Bereichs" -Fehlers und das war's.Warum funktioniert mein Error Handler nur einmal?

Warum funktioniert mein Error Handler nur einmal?

Sub InitializeFormat() 

    Dim ws As Worksheet 


    For Each ws In Worksheets 
     If Right(ws.Name, 4) <> "(FF)" Then 
      On Error GoTo SheetDoesNotExist 
      Sheets(ws.Name & "(FF)").Cells.Copy 
      Sheets(ws.Name).Cells.PasteSpecial Paste:=xlFormats 
     End If 
SheetDoesNotExist: 
    Next ws 

End Sub 

Antwort

0

Weil Sie nicht von Ihrem Fehler fortfahren. Es gibt ein paar technische Probleme mit Ihrem Code. Versuchen Sie folgendes:

Jetzt, wenn Sie einen Fehler erhalten, Sie HANDLE es durch RESUMIEREN (die den Fehler löscht). Wenn Sie keinen Fehler erhalten, wird das Programm beendet, bevor es den Fehlerhandler erreicht.

+0

Genie! Danke für die Hilfe. Ich werde diese Struktur für zukünftige Referenz beachten. –

+0

Sie sind herzlich willkommen @JonRose – KacireeSoftware