2017-03-21 5 views
0

Ich habe VBA-Code, der zum Löschen der gesamten Zeile funktioniert, wenn in einer Zellenspalte ein absoluter Nullwert vorhanden ist, aber ich bin nicht in der Lage herauszufinden, wie der Code aktualisiert werden soll Alle Arbeitsblätter (es gibt 20 Blätter in meiner Arbeitsmappe):Gesamte Zeile löschen Mit Nullen auf alle Arbeitsblätter anwenden

Kann jemand mit Syntax helfen, wie dieser Code aktualisiert wird, um auf alle Arbeitsblätter in der Arbeitsmappe anzuwenden.

Sub IfandthenDelete_Button3_Click() 

Dim lRow As Long 

Dim i As Long 

lRow = 3000 

Application.ScreenUpdating = False 

For i = lRow To 1 Step -1 

    If Cells(i, 1) = 0 Then 

    Rows(i).Delete 
     End If 

Next 

Application.ScreenUpdating = False 
End Sub 
+0

1. Die Bildschirmaktualisierung wird nicht erneut aktiviert. Wiederholen Sie einfach den 'Application.ScreenUpdating = False' Befehl. 2. Sind Ihre Daten so strukturiert, dass ein Autofilter-Befehl die Dinge beschleunigen könnte? – Jeeped

+0

Danke !! ... Ja. Ich habe die Bildschirmaktualisierung mit True wieder aktiviert und ich habe die zweite Schleife nicht richtig hinzugefügt, um alle Arbeitsblattzellen zu durchsuchen, nach denen ich suchen wollte. Dies funktioniert jetzt sehr hilfreich, um zu verstehen, was benötigt wurde. –

+0

auf dem Autofilter..Ich dachte, wenn das verwendet wurde, wird es die Berechnung verlangsamen? .... oder die Dinge beschleunigen? Grundsätzlich gibt es Nullen in der Spalte "A", die Nullen haben, die ganze Zeile löschen möchten. –

Antwort

0

Sie benötigen eine weitere for Schleife dafür.

Sub WorksheetLoop() 
    Dim wsCount As Integer 
    Dim j As Integer 
    Dim lRow As Long 
    Dim i As Long 

    lRow = 3000 
    wsCount = ActiveWorkbook.Worksheets.Count 

    For j = 1 To wsCount 

     For i = lRow To 1 Step -1 
      If ActiveWorkbook.Worksheets(j).Cells(i, 1) = 0 Then 
       ActiveWorkbook.Worksheets(j).Rows(i).Delete 
      End If 
     Next 

    Next j 

End Sub 
Verwandte Themen