VBA – Ganze Zeilen und Spalten auswählen (und damit arbeiten)
In this Article
In diesem Tutorial wird gezeigt, wie Sie in VBA ganze Zeilen oder Spalten auswählen und bearbeiten können.
Zunächst wird gezeigt, wie man ganze Zeilen und Spalten auswählt. Anschließend wird demonstriert, wie man Zeilen und Spalten manipuliert.
Markieren ganzer Zeilen oder Spalten
Einzelne Zeile auswählen
Sie können eine ganze Zeile mit dem Rows-Objekt wie folgt auswählen:
Rows(5).Select
Oder Sie können EntireRow zusammen mit den Objekten Range oder Cells verwenden:
Range("B5").EntireRow.Select
oder
Cells(5,1).EntireRow.Select
Sie können auch das Range-Objekt verwenden, um sich spezifisch 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 sich auf die Spalte Nummer 3 beziehen:
Columns(3).Select
oder den Buchstaben „C“, umgeben von Anführungszeichen:
Columns("C").Select
Anstelle von EntireRow können Sie auch EntireColumn zusammen mit den Objekten Range oder Cells verwenden, um ganze Spalten auszuwählen:
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
Die Auswahl 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
Wenn Sie jedoch die Rows- oder Columns-Objekte verwenden, müssen Sie die Zeilennummern oder Spaltenbuchstaben in Anführungszeichen eingeben:
Rows("1:3").Select
oder
Columns("B:C").Select
ActiveCell-Zeile oder -spalte auswählen
Um die Zeile oder Spalte der Aktiven Zelle 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 zu markieren, müssen Sie zunächst das Arbeitsblatt auswählen.
Sheets("Sheet2").Select
Rows(3).Select
Dasselbe gilt für die Auswahl von Zeilen oder Spalten in anderen Arbeitsmappen.
Workbooks("Book6.xlsm").Activate
Sheets("Sheet2").Select
Rows(3).Select
Hinweis: Sie müssen die gewünschte Arbeitsmappe aktivieren. Im Gegensatz zum Sheets-Objekt verfügt das Workbook-Objekt nicht über eine Select-Methode.
Ist die Auswahl von Zeilen und Spalten notwendig?
Es ist jedoch (fast?) nie notwendig, Zeilen oder Spalten zu markieren. Sie brauchen eine Zeile oder Spalte nicht auszuwählen, um mit ihnen zu arbeiten. 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 oben aufgeführte Methode verwenden, um sich auf Zeilen oder Spalten zu beziehen.
Methoden und Eigenschaften von Zeilen und Spalten
Löschen ganzer Zeilen oder Spalten
Um Zeilen oder Spalten zu löschen, verwenden Sie die Methode Delete:
Rows("1:4").Delete
oder:
Columns("A:D").Delete
Zeilen oder Spalten einfügen
Verwenden Sie die Methode Insert, um Zeilen oder Spalten einzufügen:
Rows("1:4").Insert
oder:
Columns("A:D").Insert
Kopieren und Einfügen ganzer Zeilen oder Spalten
Einfügen in eine bestehende Zeile oder Spalte
Beim Kopieren und Einfügen ganzer Zeilen oder Spalten müssen Sie entscheiden, ob Sie über eine bestehende Zeile/Spalte mit der Funktion Insert oder Paste 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 (Insert & Paste)
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").Copy
Range("5:5").Insert
Die Spalte C wird kopiert und in die Spalte E eingefügt, wobei die vorhandenen Spalten nach rechts verschoben werden:
Range("C:C").Copy
Range("E:E").Insert
Zeilen und Spalten ausblenden / einblenden
Um Zeilen oder Spalten auszublenden, setzen Sie deren Hidden-Eigenschaften auf True. Verwenden Sie False, um die Zeilen oder Spalten auszublenden:
'Zeilen ausblenden
Rows("2:3").EntireRow.Hidden = True
'Zeilen einblenden
Rows("2:3").EntireRow.Hidden = False
oder
'Spalten ausblenden
Columns("B:C").EntireColumn.Hidden = True
'Spalten einblenden
Columns("B:C").EntireColumn.Hidden = False
Gruppieren / Aufheben der Gruppierung von Zeilen und Spalten
Wenn Sie Zeilen oder Spalten gruppieren möchten, verwenden Sie den folgenden Code:
'Zeilen gruppieren
Rows("3:5").Group
'Spalten gruppieren
Columns("C:D").Group
Um die Gruppierung zu entfernen, verwenden Sie diesen Code:
'Gruppierung von Zeilen aufheben
Rows("3:5").Ungroup
'Gruppierung von Spalten aufheben
Columns("C:D").Ungroup
Dadurch werden alle „gruppierten“ Gliederungsebenen angezeigt:
ActiveSheet.Outline.ShowLevels RowLevels:=8, ColumnLevels:=8
und hierdurch werden alle Gliederungsebenen ausgeblendet:
ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1
Zeilenhöhe oder Spaltenbreite festlegen
Um die Spaltenbreite festzulegen, 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
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 Sheets-Objekt 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 abrufen
Um die aktive Zeile oder Spalte abzurufen, 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