Dieses Tutorial zeigt verschiedene Möglichkeiten zum Löschen von Zeilen und Spalten in Excel mit VBA.
Ganze Zeile oder Spalte löschen
Um eine ganze Zeile in VBA zu löschen, verwenden Sie diese Codezeile:
1 | Zeilen(1).Löschen |
Beachten Sie, dass wir die verwenden Löschen -Methode, um eine Zeile zu löschen.
Anstatt auf die Zeilen-Objekt, können Sie Zeilen basierend auf ihrer referenzieren Bereichsobjekt mit Ganze Reihe:
1 | Range("a1").EntireRow.Delete |
Um eine ganze Spalte zu löschen, verwenden Sie die folgenden Codezeilen:
1 | Spalten(1).Löschen |
1 | Range("a1").EntireColumn.Delete |
Mehrere Zeilen oder Spalten löschen
Mit derselben Logik können Sie auch mehrere Zeilen gleichzeitig löschen:
1 | Zeilen("1:3").Löschen |
oder Spalten:
1 | Spalten("A:C").Löschen |
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:
1 | Range("a1:a10").EntireRow.Delete |
Hinweis: Die folgenden Beispiele veranschaulichen nur das Löschen von Zeilen, aber wie Sie oben sehen können, ist die Syntax praktisch identisch mit dem Löschen von Spalten.
Leere / leere Zeilen löschen
In diesem Beispiel wird eine Zeile gelöscht, wenn die gesamte Zeile leer ist:
1234567891011 | Unter DeleteRows_EntireRowBlank()Zelle als Bereich dimmenFür jede Zelle im Bereich("b2:b20")Wenn Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Thencell.EntireRow.DeleteEnde WennNächste ZelleEnd Sub |
Es verwendet die Excel-Arbeitsblattfunktion: ANZAHL.
Zeile löschen, wenn Zelle leer ist
Dadurch wird eine Zeile gelöscht, wenn eine bestimmte Spalte in dieser Zeile leer ist (in diesem Fall Spalte B):
1 | Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete |
Zeile basierend auf Zellenwert löschen
Dies durchläuft einen Bereich und löscht Zeilen, wenn ein bestimmter Zellenwert in dieser Zeile „Löschen“ sagt.
1234567891011 | Unter DeleteRowswithSpecificValue()Zelle als Bereich dimmenFür jede Zelle im Bereich("b2:b20")Wenn cell.Value = "delete" Thencell.EntireRow.DeleteEnde WennNächste ZelleEnd Sub |
Weitere Beispiele zum Löschen von Zeilen und Spalten
Doppelte Zeilen löschen
Dieser Code löscht alle doppelten Zeilen in einem Bereich:
1 | Range("b2:c100").RemoveDuplicates Columns:=2 |
Beachten Sie, dass wir Columns:=2 gesetzt haben. Dies weist VBA an, die beiden ersten Datenspalten zu überprüfen, wenn geprüft wird, ob Zeilen Duplikate sind. 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 überprüft worden.
Tabellenzeilen löschen
Dieser Code löscht die zweite Zeile in einer Tabelle, indem er auf ListObjects verweist.
1 | ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete |
Gefilterte Zeilen löschen
So löschen Sie nur Zeilen, die nach dem Filtern sichtbar sind:
1 | Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete |
Zeilen im Bereich löschen
Dieser Code löscht alle Zeilen im Bereich:
1 | Range("a1:a10").EntireRow.Delete |
Ausgewählte Zeilen löschen
Dieser Code löscht alle ausgewählten Zeilen:
1 | Auswahl.EntireRow.Delete |
Letzte Zeile löschen
Dadurch wird die zuletzt verwendete Zeile in Spalte B gelöscht:
1 | Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete |
Durch Ändern von 2 auf 1 können Sie die zuletzt verwendete Zeile in Spalte A löschen usw.:
1 | Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete |
Spalten nach Nummer löschen
Um eine Spalte anhand ihrer Nummer zu löschen, verwenden Sie einen Code wie diesen:
1 | Spalten (2).Löschen |