Rückkehr in VBA-Code-Beispiele

VBA – Gesamte Zeile oder Spalte löschen

In diesem Lernprogramm werden verschiedene Möglichkeiten zum Löschen von Zeilen und Spalten in Excel mithilfe von VBA vorgestellt.

Gesamte Zeile oder Spalte löschen

Um eine ganze Zeile in VBA zu löschen, verwenden Sie diese Codezeile:

Rows(1).Delete

Beachten Sie, dass wir die Delete-Methode verwenden, um eine Zeile zu löschen.

Anstatt das Row-Objekt zu verwenden, können Sie auf Zeilen auf der Basis ihres Range-Objekts mit EntireRow verweisen:

Range("a1").EntireRow.Delete

Um eine ganze Spalte zu löschen, verwenden Sie die folgenden Codezeilen:

Columns(1).Delete
Range("a1").EntireColumn.Delete

Mehrere Zeilen oder Spalten löschen

Mit der gleichen Logik können Sie auch mehrere Zeilen auf einmal löschen:

Rows("1:3").Delete

oder Spalten:

Columns("A:C").Delete

Beachten Sie, dass wir uns hier auf die spezifischen Zeilen- und Spaltennummern bzw. -buchstaben beziehen, die von Anführungszeichen umgeben sind.

Natürlich können Sie auch auf die gesamte Zeile eines Bereichs verweisen:

Range("a1:a10").EntireRow.Delete

Hinweis: Die folgenden Beispiele zeigen nur das Löschen von Zeilen, aber wie Sie oben sehen können, ist die Syntax praktisch identisch zum Löschen von Spalten.

Leere/leere Zeilen löschen

In diesem Beispiel wird eine Zeile gelöscht, wenn sie ganz leer ist:

Sub ZeilenLoeschen_GanzeLeereZeilen()

Dim Zelle As Range

For Each Zelle In Range("b2:b20")
    If Application.WorksheetFunction.CountA(Zelle.EntireRow) = 0 Then
        Zelle.EntireRow.Delete
    End If
Next Zelle

End Sub

Es wird die Excel-Arbeitsblattfunktion COUNTA verwendet.

Zeile löschen, wenn Zelle leer ist

Damit wird eine Zeile gelöscht, wenn eine bestimmte Spalte in dieser Zeile leer ist (in diesem Fall Spalte B):

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

Zeile anhand des Zellenwerts löschen

Diese Funktion durchläuft einen Bereich und löscht Zeilen, wenn ein bestimmter Zellenwert in dieser Zeile „Löschen“ lautet.

Sub ZeilenMitSpezifischenWertenLoeschen()

Dim Zelle As Range

For Each Zelle In Range("b2:b20")
    If Zelle.Value = "Löschen" Then
        Zelle.EntireRow.Delete
    End If
Next Zelle

End Sub

Weitere Beispiele zum Löschen von Zeilen und Spalten

Doppelte Zeilen löschen

Mit diesem Code werden alle doppelten Zeilen in einem Bereich gelöscht:

Range("b2:c100").RemoveDuplicates Columns:=2

Beachten Sie, dass wir Columns:=2 festgelegt haben. Dadurch wird VBA angewiesen, die ersten beiden Datenspalten zu prüfen, wenn es sich um doppelte Zeilen handelt. Ein Duplikat wird nur gefunden, wenn beide Spalten doppelte Werte aufweisen. Hätten wir diesen Wert auf 1 gesetzt, wäre nur die erste Zeile auf doppelte Werte geprüft worden.

Tabellenzeilen löschen

Mit diesem Code wird die zweite Zeile in einer Tabelle gelöscht, indem auf ListObjects verwiesen wird.

ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete

Gefilterte Zeilen löschen

So löschen Sie nur Zeilen, die nach dem Filtern sichtbar sind:

Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete

Zeilen im Bereich löschen

Mit diesem Code werden alle Zeilen im Bereich gelöscht:

Range("a1:a10").EntireRow.Delete

Ausgewählte Zeilen löschen

Mit diesem Code werden alle ausgewählten Zeilen gelöscht:

Selection.EntireRow.Delete

Letzte Zeile löschen

Damit wird die letzte belegte Zeile in Spalte B gelöscht:

Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete

Wenn Sie 2 in 1 ändern, können Sie die zuletzt verwendete Zeile in Spalte A löschen usw.:

Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete

Spalten nach Nummer löschen

Um eine Spalte nach ihrer Nummer zu löschen, verwenden Sie einen Code wie diesen:

Columns (2).Delete