Umdrehen einer For-Schleife?
17.12.2014 08:15:56
Monika
ich hätte mal eine Frage zur for-Schleife:
Ich habe ein Makro geschrieben, welches zwei Sheets löschen soll, bevor ein anderes Makro läuft. Wie das ganze momentan aussieht, seht ihr unten...
Das ganze funktioniert auch - allerdings mit einer Einschränkung: Es wird ein Sheet gelöscht, es kommt eine Subscript out of Range-Messagebox und erst wenn man den Button erneut drückt, geht es dann weiter... Ich habe überlegt, ob man die Schleife vielleicht rumdrehen kann, zum Beispiel statt for i = 1 to WS_Count -- for WS_Count to i=1 zu schreiben. Aber so geht das natürlich von der Syntax nicht. Kann mir da jemand weiterhelfen? :)
Viele Grüße
Monika
Sub BlaetterLoeschen()
Dim WS_Count As Integer
Dim WS As Worksheet
' Set WS_Count equal to the number of worksheets in the active workbook.
WS_Count = ActiveWorkbook.Worksheets.Count
' performing a loop, checking every sheet. If sheetname equals "OrderStatus" it will be _
deleted.
' No alert will be shown to the user.
For i = 1 to WS_Count
Set WS = ActiveWorkbook.Worksheets(i)
Application.DisplayAlerts = False
If WS.name = "OrderStatus" Or WS.name = "Order Tracker" Then
WS.Delete
End If
' Alert will be activated again.
Application.DisplayAlerts = True
Set WS = Nothing
Next i
End Sub