VBA Delete Entire Row or Column – Automate ExcelAutomate Excel

In diesem Tutorial werden verschiedene Möglichkeiten zum Löschen von Zeilen und Spalten in Excel mit VBA demonstriert.

Delete Entire Row or Column

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

Rows(1).Delete

Beachten Sie, dass wir die Delete-Methode zum Löschen einer Zeile verwenden.

Anstatt auf das Rows-Objekt zu verweisen, können Sie mit EntireRow auf Zeilen verweisen, die auf ihrem Range-Objekt basieren:

Range("a1").EntireRow.Delete

Um eine ganze Spalte zu löschen, verwenden Sie diese 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 hier auf die spezifischen Zeilen- und Spaltennummern / Buchstaben verweisen, 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

Dieses Beispiel löscht eine Zeile, wenn die gesamte Zeile leer ist:

Sub DeleteRows_EntireRowBlank()Dim cell As RangeFor Each cell In Range("b2:b20") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End IfNext cellEnd Sub

Es verwendet die Excel-Arbeitsblattfunktion: COUNTA.

Zeile löschen, wenn Zelle leer ist

Dieses Beispiel löscht eine Zeile, wenn eine bestimmte Spalte in dieser Zeile leer ist (in diesem Fall Spalte B):

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

Zeile aufgrund eines Zellwerts löschen

Dieses Beispiel durchläuft eine Schleife in einem Bereich und löscht Zeilen, wenn ein bestimmter Zellwert in dieser Zeile „Löschen“ lautet.

Sub DeleteRowswithSpecificValue()Dim cell As RangeFor Each cell In Range("b2:b20") If cell.Value = "delete" Then cell.EntireRow.Delete End IfNext cellEnd Sub

Weitere Beispiele für das Löschen von Zeilen und Spalten

Doppelte Zeilen löschen

Dieser Code löscht alle doppelten Zeilen in einem Bereich:

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

Beachten Sie, dass wir Spalten:=2 gesetzt 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.

Wenn wir dies auf 1 gesetzt hätten, wäre nur die erste Zeile auf doppelte Werte geprüft worden.

Tabellenzeilen löschen

Dieser Code löscht die zweite Zeile in einer Tabelle, indem er auf ListObjects verweist.

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

Gefilterte Zeilen löschen

Um nur Zeilen zu löschen, die nach der Filterung sichtbar sind:

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

Zeilen im Bereich löschen

Dieser Code löscht alle Zeilen im Bereich:

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

Ausgewählte Zeilen löschen

Dieser Code löscht alle ausgewählten Zeilen:

Selection.EntireRow.Delete

Letzte Zeile löschen

Dies löscht die zuletzt verwendete Zeile in Spalte B:

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

Durch Ändern von 2 in 1 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.