2017-12-05 6 views
2

Ich habe mehrere Blätter mit Daten auf jedem Blatt. Ich möchte Blätter von Blatt Nr. 4 bis unbegrenzt löschen. Ich habe unten Code versucht:Mehrere Blätter gleichzeitig löschen

Sub Delete_Sheets() 
    Application.ScreenUpdating = False 
    Dim j As Integer 
    j = Worksheets.Count 
    For k = 4 To j 
     With Sheets(k).Delete 
     End With 
    Next k 
    Application.ScreenUpdating = True 
End Sub 

Das Problem ist, wird der Code jedes Mal meine Erlaubnis bitten Blatt zu löschen und schließlich sah löscht nur wenige Blätter. Jemand hilft.

Antwort

3

Deaktivieren Sie die Bestätigungen, und führen Sie den Löscharbeitsblattbefehl aus, bis drei Arbeitsblätter übrig sind.

Option Explicit 

Sub qwea() 
    Application.DisplayAlerts = False 
    Do While Worksheets.Count > 3 
     Worksheets(Worksheets.Count).Delete 
    Loop 
    Application.DisplayAlerts = True 
End Sub 

Ihr Code würde richtig gearbeitet haben, wenn Sie die Zunahme des Für umgekehrte hatte ... Weiter wie For k = j To 4 step - 1. Sie haben beim Löschen "Arbeitsblätter" gewechselt.

4

Die angezeigten Warnungen ausschalten. Lösche rückwärts vom letzten Blatt.

Sub Delete_Sheets() 
Dim j as long 
Dim k As Long 
    Application.ScreenUpdating = False 
    Application.DisplayAlerts = False 
    j = Worksheets.Count 
    For k = j To 4 Step -1 
     Sheets(k).Delete 
    Next k 
    Application.ScreenUpdating = True 
    Application.DisplayAlerts = True 
End Sub 
+0

guten Fang! (übrigens, dein * j * ist als Variante deklariert, nicht als lang) – Jeeped

+0

Na dann gehts. Ich habe etwas Neues gelernt. Vielen Dank. – Carol

+0

Danke Jeeped, Danke Carol Grüße. –

0

Wenn Sie die Blätter immer 4 indiziert löschen, dann funktioniert das vielleicht für Sie.

Dim idx, s As String 

Application.DisplayAlerts = False '/* of course you need to turn this off */ 

If Sheets.Count > 3 Then 
    s = "=TRANSPOSE(ROW(A4:A" & Sheets.Count & "))" 
    idx = Evaluate(s) 
    Sheets(idx).Delete 
End If 

Application.DisplayAlerts = True 

Dies wird immer Blätter über 4.
löschen Aber stellen Sie sicher, dass Ihre Blätter werden immer korrekt indiziert, sonst Schleife verwenden.

Verwandte Themen