2017-09-15 3 views
1

Ich versuche, ganze Zeilen basierend darauf, ob der Zellenwert in der Spalte D NULL ist oder nicht, zu löschen. Mein bisheriger Code ist:So löschen Sie Zeilen basierend auf leeren Zellenwert in VBA

Sub DeleteNULL() 

Dim i As Long 

For i = 2 To 119713 
     If IsEmpty(Range("Di")) = True Then 
      Rows([i]).EntireRow.Delete 

     Else 
      If IsEmpty(Range("Di")) = False Then 
      Next i 

     End If 


End Sub 

Ich bekomme immer Kompilierfehler, entweder ohne Else oder Next ohne For, wie soll ich das beheben?

Vielen Dank im Voraus.

+0

Sie müssen nach hinten Schleife oder Sie werden Probleme haben, damit Zeilen zu überspringen. – braX

+0

https://stackoverflow.com/questions/30462449/excel-vba-find-empty-cell-and-delete-the-row?rq=1 – braX

Antwort

1

Ein paar Dinge:

  1. Platzierung einer Menge Syntax ist ausgeschaltet.
  2. Beim Hinzufügen oder Löschen von Zeilen müssen Sie basierend auf der Verarbeitung dieser Ereignisse durch Excel eine Schleife zurückführen.

Siehe Code unten:

Sub DeleteNULL() 

    Dim i As Long 

    For i = 119713 To 2 Step -1 
     If IsEmpty(Range("D" & i)) Then Rows([i]).EntireRow.Delete 
    Next i 

End Sub 
+0

Sollte nicht Endif und Next in getauschter Position sein. –

+0

@AnkitBajpai - Korrigiert. Hab meinen Tippfehler nicht gesehen. Vielen Dank. Warst du das, der die Meinung verlor? –

+0

Niemals. Mein Daumenregel auf SO, Wenn Sie keine Stimmen bekommen, Nie Downvote andere. –

Verwandte Themen