Rückkehr in VBA-Code-Beispiele

VBA – Ganze Zeilen und Spalten auswählen (und damit arbeiten)

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