VBA – Ganze Zeilen & Spalten markieren (und bearbeiten) – Excel automatisierenExcel automatisieren
In diesem Tutorial zeigen wir Ihnen, wie Sie ganze Zeilen oder Spalten in VBA markieren und bearbeiten können.
Zuerst behandeln wir das Markieren ganzer Zeilen und Spalten, dann zeigen wir, wie Sie Zeilen und Spalten manipulieren können.
Ganze Zeilen oder Spalten markieren
Eine einzelne Zeile markieren
Sie können eine ganze Zeile mit dem Rows-Objekt wie folgt markieren:
Rows(5).Select
Oder Sie können EntireRow zusammen mit den Range- oder Cells-Objekten verwenden:
Range("B5").EntireRow.Select
oder
Cells(5,1).EntireRow.Select
Sie können auch das Range-Objekt verwenden, um sich speziell auf eine Zeile zu beziehen:
Range("5:5").Select
Einzelne Spalte auswählen
Anstelle des Rows-Objekts können Sie auch das Columns-Objekt verwenden, um Spalten auszuwählen. Hier können Sie die Spaltennummer 3 referenzieren:
Columns(3).Select
oder den Buchstaben „C“, umgeben von Anführungszeichen:
Columns("C").Select
Anstelle von EntireRow verwenden Sie EntireColumn zusammen mit den Range- oder Cells-Objekten, um ganze Spalten zu markieren:
Range("C5").EntireColumn.Select
oder
Cells(5,3).EntireColumn.Select
Sie können auch das Range-Objekt verwenden, um sich speziell auf eine Spalte zu beziehen:
Range("B:B").Select
Mehrere Zeilen oder Spalten auswählen
Das Auswählen mehrerer Zeilen oder Spalten funktioniert genauso wie bei der Verwendung von EntireRow oder EntireColumn:
Range("B5:D10").EntireRow.Select
oder
Range("B5:B10").EntireColumn.Select
Bei der Verwendung der Objekte Rows oder Columns müssen Sie allerdings die Zeilennummern oder Spaltenbuchstaben in Anführungszeichen eingeben:
Rows("1:3").Select
oder
Columns("B:C").Select
ActiveCell Row oder Column auswählen
Um die ActiveCell Row oder Column auszuwählen, können Sie eine der folgenden Codezeilen verwenden:
ActiveCell.EntireRow.Select
oder
ActiveCell.EntireColumn.Select
Zeilen und Spalten auf anderen Arbeitsblättern auswählen
Um Zeilen oder Spalten auf anderen Arbeitsblättern auszuwählen, müssen Sie zunächst das Arbeitsblatt auswählen.
Sheets("Sheet2").SelectRows(3).Select
Das Gleiche gilt für die Auswahl von Zeilen oder Spalten in anderen Arbeitsmappen.
Workbooks("Book6.xlsm").ActivateSheets("Sheet2").SelectRows(3).Select
Hinweis: Sie müssen die gewünschte Arbeitsmappe aktivieren. Im Gegensatz zum Sheets-Objekt hat das Workbook-Objekt keine Select-Methode.
Ist die Auswahl von Zeilen und Spalten notwendig?
Es ist jedoch (fast?) nie notwendig, tatsächlich Zeilen oder Spalten auszuwählen. Sie müssen eine Zeile oder Spalte nicht markieren, um mit ihnen zu interagieren. Stattdessen können Sie Methoden oder Eigenschaften direkt auf die Zeilen oder Spalten anwenden. In den nächsten Abschnitten werden verschiedene Methoden und Eigenschaften vorgestellt, die angewendet werden können.
Sie können jede der oben aufgeführten Methoden verwenden, um sich auf Zeilen oder Spalten zu beziehen.
Methoden und Eigenschaften von Zeilen &Spalten
Ganze Zeilen oder Spalten löschen
Um Zeilen oder Spalten zu löschen, verwenden Sie die Methode Löschen:
Rows("1:4").Delete
oder:
Columns("A:D").Delete
Zeilen oder Spalten einfügen
Um Zeilen oder Spalten einzufügen, verwenden Sie die Methode Einfügen:
Rows("1:4").Insert
oder:
Columns("A:D").Insert
Kopieren &Einfügen ganzer Zeilen oder Spalten
Einfügen in vorhandene Zeile oder Spalte
Beim Kopieren und Einfügen ganzer Zeilen oder Spalten müssen Sie entscheiden, ob Sie über eine bestehende Zeile/Spalte einfügen wollen oder ob Sie eine neue Zeile/Spalte einfügen wollen, um Ihre Daten einzufügen.
Diese ersten Beispiele kopieren und fügen über eine bestehende Zeile oder Spalte ein:
Range("1:1").Copy Range("5:5")
oder
Range("C:C").Copy Range("E:E")
Einfügen & Einfügen
Diese nächsten Beispiele fügen in eine neu eingefügte Zeile oder Spalte ein.
So wird Zeile 1 kopiert und in Zeile 5 eingefügt, wobei die vorhandenen Zeilen nach unten verschoben werden:
Range("1:1").CopyRange("5:5").Insert
So wird Spalte C kopiert und in Spalte E eingefügt, wobei die vorhandenen Spalten nach rechts verschoben werden:
Range("C:C").CopyRange("E:E").Insert
Zeilen und Spalten ausblenden / einblenden
Um Zeilen oder Spalten auszublenden, setzen Sie deren Ausgeblendet-Eigenschaften auf True. Verwenden Sie False, um die Zeilen oder Spalten auszublenden:
'Hide RowsRows("2:3").EntireRow.Hidden = True'Unhide RowsRows("2:3").EntireRow.Hidden = False
oder
'Hide ColumnsColumns("B:C").EntireColumn.Hidden = True'Unhide ColumnsColumns("B:C").EntireColumn.Hidden = False
Zeilen und Spalten gruppieren / Gruppierung aufheben
Wenn Sie Zeilen (oder Spalten) gruppieren möchten, verwenden Sie Code wie diesen:
'Group RowsRows("3:5").Group'Group ColumnsColumns("C:D").Group
Um die Gruppierung aufzuheben, verwenden Sie diesen Code:
'Ungroup RowsRows("3:5").Ungroup'Ungroup ColumnsColumns("C:D").Ungroup
Damit werden alle „gruppierten“ Gliederungsebenen aufgeklappt:
ActiveSheet.Outline.ShowLevels RowLevels:=8, ColumnLevels:=8
und damit werden alle Gliederungsebenen zugeklappt:
ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1
Zeilenhöhe oder Spaltenbreite einstellen
Um die Spaltenbreite einzustellen, verwenden Sie diese Codezeile:
Columns("A:E").ColumnWidth = 30
Um die Zeilenhöhe einzustellen, verwenden Sie diese Codezeile:
Rows("1:1").RowHeight = 30
Zeilenhöhe / Spaltenbreite automatisch anpassen
Um eine Spalte automatisch anzupassen:
Columns("A:B").Autofit
Um eine Zeile automatisch anzupassen:
Rows("1:2").Autofit
Zeilen und Spalten auf anderen Arbeitsblättern oder Arbeitsmappen
Um mit Zeilen und Spalten auf anderen Arbeitsblättern zu interagieren, müssen Sie das Objekt Sheets definieren:
Sheets("Sheet2").Rows(3).Insert
Um mit Zeilen und Spalten in anderen Arbeitsmappen zu interagieren, müssen Sie ebenfalls das Workbook-Objekt definieren:
Workbooks("book1.xlsm").Sheets("Sheet2").Rows(3).Insert
Aktive Zeile oder Spalte abfragen
Um die aktive Zeile oder Spalte abzufragen, können Sie die Row- und Column-Eigenschaften des ActiveCell-Objekts verwenden.
MsgBox ActiveCell.Row
oder
MsgBox ActiveCell.Column
Dies funktioniert auch mit dem Range Objekt:
MsgBox Range("B3").Column