Vorgehensweise auswählen von Zellen/Bereichen mithilfe Visual Basic Verfahren in Excel

Microsoft stellt Programmierbeispiele nur zur Veranschaulichung bereit, ohne ausdrückliche oder implizite Garantie. Dies umfasst, jedoch nicht ausschließlich, die implizierten Garantien der Marktgängigkeit oder Eignung für einen bestimmten Zweck. In diesem Artikel wird davon ausgegangen, dass Sie mit der Programmiersprache, die demonstriert wird, und mit den Tools vertraut sind, die zum Erstellen und Debuggen von Prozeduren verwendet werden. Microsoft-Supporttechniker können Ihnen dabei helfen, die Funktionalität eines bestimmten Verfahrens zu erläutern, aber diese Beispiele werden nicht geändert, um zusätzliche Funktionen oder Erstellungsverfahren für Ihre spezifischen Anforderungen bereitzustellen. In den Beispielen in diesem Artikel werden die Visual Basic Methoden verwendet, die in der folgenden Tabelle aufgeführt sind.

Method             Arguments
------------------------------------------
Activate           none
Cells              rowIndex, columnIndex
Application.Goto   reference, scroll
Offset             rowOffset, columnOffset
Range              cell1
                   cell1, cell2
Resize             rowSize, columnSize
Select             none
Sheets             index (or sheetName)
Workbooks          index (or bookName)
End                direction
CurrentRegion      none

In den Beispielen in diesem Artikel werden die Eigenschaften in der folgenden Tabelle verwendet.

Property         Use
---------------------------------------------------------------------
ActiveSheet      to specify the active sheet
ActiveWorkbook   to specify the active workbook
Columns.Count    to count the number of columns in the specified item
Rows.Count       to count the number of rows in the specified item
Selection        to refer to the currently selected range

Vorgehensweise auswählen einer Zelle im aktiven Arbeitsblatt

Sie können ein beliebiges der folgenden Beispiele verwenden, um die Zelle D5 im aktiven Arbeitsblatt auszuwählen:

ActiveSheet.Cells(5, 4).Select
-or-
ActiveSheet.Range("D5").Select

Vorgehensweise auswählen einer Zelle in einem anderen Arbeitsblatt in derselben Arbeitsmappe

Wenn Sie Zelle E6 auf einem anderen Arbeitsblatt in derselben Arbeitsmappe auswählen möchten, können Sie eines der folgenden Beispiele verwenden:

Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
   -or-
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))

Sie können das Arbeitsblatt auch aktivieren und dann die obige Methode 1 verwenden, um die Zelle auszuwählen:

Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select

Vorgehensweise auswählen einer Zelle auf einem Arbeitsblatt in einer anderen Arbeitsmappe

Wenn Sie Zelle F7 auf einem Arbeitsblatt in einer anderen Arbeitsmappe auswählen möchten, können Sie eines der folgenden Beispiele verwenden:

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
-or-
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")

Sie können das Arbeitsblatt auch aktivieren und dann die obige Methode 1 verwenden, um die Zelle auszuwählen:

Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select

Vorgehensweise auswählen eines Zellbereichs im aktiven Arbeitsblatt

Wenn Sie den Bereich C2: D10 im aktiven Arbeitsblatt auswählen möchten, können Sie eines der folgenden Beispiele verwenden:

ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
ActiveSheet.Range("C2:D10").Select
ActiveSheet.Range("C2", "D10").Select

Vorgehensweise auswählen eines Zellbereichs in einem anderen Arbeitsblatt in derselben Arbeitsmappe

Wenn Sie den Bereich D3: E11 in einem anderen Arbeitsblatt in derselben Arbeitsmappe auswählen möchten, können Sie eines der folgenden Beispiele verwenden:

Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")

Sie können das Arbeitsblatt auch aktivieren und dann die Methode 4 oben verwenden, um den Bereich auszuwählen:

Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select

Vorgehensweise auswählen eines Zellbereichs in einem Arbeitsblatt in einer anderen Arbeitsmappe

Wenn Sie den Bereich E4: F12 auf einem Arbeitsblatt in einer anderen Arbeitsmappe auswählen möchten, können Sie eines der folgenden Beispiele verwenden:

Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
Application.Goto _
      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")

Sie können das Arbeitsblatt auch aktivieren und dann die Methode 4 oben verwenden, um den Bereich auszuwählen:

Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select

Vorgehensweise auswählen eines benannten Bereichs im aktiven Arbeitsblatt

Wenn Sie den benannten Bereich "Test" im aktiven Arbeitsblatt auswählen möchten, können Sie eines der folgenden Beispiele verwenden:

Range("Test").Select
Application.Goto "Test"

Vorgehensweise auswählen eines benannten Bereichs in einem anderen Arbeitsblatt in derselben Arbeitsmappe

Wenn Sie den benannten Bereich "Test" in einem anderen Arbeitsblatt in derselben Arbeitsmappe auswählen möchten, können Sie das folgende Beispiel verwenden:

Application.Goto Sheets("Sheet1").Range("Test")

Sie können das Arbeitsblatt auch aktivieren und dann mit der Methode 7 oben den benannten Bereich auswählen:

Sheets("Sheet1").Activate
Range("Test").Select

Vorgehensweise auswählen eines benannten Bereichs auf einem Arbeitsblatt in einer anderen Arbeitsmappe

Zum Auswählen des benannten Bereichs "Test" auf einem Arbeitsblatt in einer anderen Arbeitsmappe können Sie das folgende Beispiel verwenden:

Application.Goto _
   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")

Sie können das Arbeitsblatt auch aktivieren und dann mit der Methode 7 oben den benannten Bereich auswählen:

Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select

Vorgehensweise auswählen einer Zelle relativ zur aktiven Zelle

Wenn Sie eine Zelle mit fünf Zeilen unter und vier Spalten links von der aktiven Zelle auswählen möchten, können Sie das folgende Beispiel verwenden:

ActiveCell.Offset(5, -4).Select

Wenn Sie eine Zelle mit zwei Zeilen oberhalb und drei Spalten rechts neben der aktiven Zelle auswählen möchten, können Sie das folgende Beispiel verwenden:

ActiveCell.Offset(-2, 3).Select

Hinweis

Wenn Sie versuchen, eine Zelle aus dem Arbeitsblatt auszuwählen, wird ein Fehler ausgegeben. Im ersten oben gezeigten Beispiel wird ein Fehler zurückgegeben, wenn sich die aktive Zelle in den Spalten A bis D befindet, da das Verschieben von vier Spalten nach links die aktive Zelle an eine ungültige Zellenadresse nimmt.

Vorgehensweise auswählen einer Zelle relativ zu einer anderen (nicht der aktiven) Zelle

Wenn Sie eine Zelle mit fünf Zeilen unter und vier Spalten rechts von Zelle C7 auswählen möchten, können Sie eines der folgenden Beispiele verwenden:

ActiveSheet.Cells(7, 3).Offset(5, 4).Select
ActiveSheet.Range("C7").Offset(5, 4).Select

Vorgehensweise auswählen eines Bereichs von Zellen, die von einem angegebenen Bereich versetzt werden

Um einen Zellbereich auszuwählen, der die gleiche Größe wie der benannte Bereich "Test" aufweist, jedoch vier Zeilen nach unten und drei Spalten nach rechts verschoben wird, können Sie das folgende Beispiel verwenden:

ActiveSheet.Range("Test").Offset(4, 3).Select

Wenn sich der benannte Bereich auf einem anderen (nicht aktiven) Arbeitsblatt befindet, aktivieren Sie zuerst dieses Arbeitsblatt, und wählen Sie dann den Bereich mit dem folgenden Beispiel aus:

Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select

Vorgehensweise auswählen eines angegebenen Bereichs und Ändern der Größe der Auswahl

Zum Auswählen des benannten Bereichs "Database" und zum Erweitern der Auswahl um fünf Zeilen können Sie das folgende Beispiel verwenden:

Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
   Selection.Columns.Count).Select

Vorgehensweise auswählen eines angegebenen Bereichs, Offset und anschließendes Ändern der Größe

Sie können das folgende Beispiel verwenden, um einen Bereich mit vier Zeilen und drei Spalten rechts vom benannten Bereich "Database" auszuwählen und zwei Zeilen und eine Spalte mit mehr als dem benannten Bereich hinzuzufügen:

Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
   Selection.Columns.Count + 1).Select

Vorgehensweise auswählen der Vereinigung von zwei oder mehr angegebenen Bereichen

Um die Union (also den kombinierten Bereich) der beiden benannten Bereiche "Test" und "Sample" auszuwählen, können Sie das folgende Beispiel verwenden:

Application.Union(Range("Test"), Range("Sample")).Select

Hinweis

, dass sich beide Bereiche auf demselben Arbeitsblatt befinden müssen, damit dieses Beispiel funktioniert. Beachten Sie auch, dass die Union-Methode nicht in allen Arbeitsblättern funktioniert. Beispielsweise funktioniert diese Verbindung einwandfrei.

Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))

aber diese Reihe

Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))

Gibt die Fehlermeldung zurück:

Union-Methode der Anwendungsklasse fehlgeschlagen

Vorgehensweise auswählen der Schnittmenge von zwei oder mehr angegebenen Bereichen

Um die Schnittmenge der beiden benannten Bereiche "Test" und "Sample" auszuwählen, können Sie das folgende Beispiel verwenden:

Application.Intersect(Range("Test"), Range("Sample")).Select

Beachten Sie, dass beide Bereiche auf demselben Arbeitsblatt liegen müssen, damit dieses Beispiel funktioniert.

Beispiele 17-21 in diesem Artikel bezieht sich auf den folgenden Beispielsatz von Daten. Jedes Beispiel gibt den Zellbereich in den Beispieldaten an, der ausgewählt würde.

A1: Name    B1: Sales    C1: Quantity
A2: a       B2: $10      C2: 5
A3: b       B3:          C3: 10
A4: c       B4: $10      C4: 5
A5:         B5:          C5:
A6: Total   B6: $20      C6: 20

Vorgehensweise auswählen der letzten Zelle einer Spalte mit zusammenhängenden Daten

Verwenden Sie das folgende Beispiel, um die letzte Zelle in einer zusammenhängenden Spalte auszuwählen:

ActiveSheet.Range("a1").End(xlDown).Select

Wenn dieser Code mit der Beispieltabelle verwendet wird, wird Zelle A4 ausgewählt.

Vorgehensweise auswählen der leeren Zelle am unteren Rand einer Spalte mit zusammenhängenden Daten

Verwenden Sie das folgende Beispiel, um die Zelle unterhalb eines Bereichs zusammenhängender Zellen auszuwählen:

ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select

Wenn dieser Code mit der Beispieltabelle verwendet wird, wird Zelle A5 ausgewählt.

Vorgehensweise auswählen eines gesamten Bereichs zusammenhängender Zellen in einer Spalte

Wenn Sie einen Bereich zusammenhängender Zellen in einer Spalte auswählen möchten, verwenden Sie eines der folgenden Beispiele:

ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
   -or-
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
      End(xlDown).Address).Select

Wenn dieser Code mit der Beispieltabelle verwendet wird, werden die Zellen a1 bis A4 ausgewählt.

Vorgehensweise auswählen eines gesamten Bereichs nicht zusammenhängender Zellen in einer Spalte

Wenn Sie einen Zellbereich auswählen möchten, der nicht zusammenhängend ist, verwenden Sie eines der folgenden Beispiele:

ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select
   -or-
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
   End(xlUp).Address).Select

Wenn dieser Code zusammen mit der Beispieltabelle verwendet wird, werden die Zellen a1 bis A6 ausgewählt.

Vorgehensweise auswählen eines rechteckigen Zellbereichs

Verwenden Sie die CurrentRegion-Methode, um einen rechteckigen Bereich von Zellen um eine Zelle auszuwählen. Der Bereich, der von der CurrentRegion-Methode ausgewählt wird, ist ein Bereich, der durch eine beliebige Kombination aus leeren Zeilen und leeren Spalten begrenzt ist. Im folgenden finden Sie ein Beispiel für die Verwendung der CurrentRegion-Methode:

ActiveSheet.Range("a1").CurrentRegion.Select

Dieser Code wählt die Zellen a1 bis C4 aus. Weitere Beispiele zum Auswählen des gleichen Zellbereichs sind unten aufgeführt:

ActiveSheet.Range("a1", _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight)).Select
   -or-
ActiveSheet.Range("a1:" & _
   ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Select

In einigen Fällen möchten Sie möglicherweise die Zellen a1 bis C6 auswählen. In diesem Beispiel kann die CurrentRegion-Methode aufgrund der leeren Zeile in Zeile 5 nicht verwendet werden. In den folgenden Beispielen werden alle Zellen ausgewählt:

lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
    -or-
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
   ActiveSheet.Cells(lastRow, lastCol).Address).Select

Vorgehensweise auswählen mehrerer nicht zusammenhängender Spalten mit unterschiedlicher Länge

Wenn Sie mehrere nicht zusammenhängende Spalten mit unterschiedlicher Länge auswählen möchten, verwenden Sie die folgende Beispieltabelle und ein Makrobeispiel:

A1: 1  B1: 1  C1: 1  D1: 1
A2: 2  B2: 2  C2: 2  D2: 2
A3: 3  B3: 3  C3: 3  D3: 3
A4:    B4: 4  C4: 4  D4: 4
A5:    B5: 5  C5: 5  D5:
A6:    B6:    C6: 6  D6:
StartRange = "A1"
EndRange = "C1"
Set a = Range(StartRange, Range(StartRange).End(xlDown))
Set b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select

Wenn dieser Code mit der Beispieltabelle verwendet wird, werden die Zellen a1: a3 und C1: C6 ausgewählt.

Hinweise zu den Beispielen

Die ActiveSheet-Eigenschaft kann normalerweise ausgelassen werden, da Sie impliziert wird, wenn ein bestimmtes Blatt nicht benannt wird. Beispiel: anstelle von

ActiveSheet.Range("D5").Select

Sie können Folgendes verwenden:

Range("D5").Select

Die ActiveWorkbook-Eigenschaft kann auch in der Regel ausgelassen werden. Wenn keine bestimmte Arbeitsmappe benannt ist, wird die aktive Arbeitsmappe impliziert.

Wenn Sie die Application. Goto-Methode verwenden, wenn Sie zwei Zellen Methoden innerhalb der Range-Methode verwenden möchten, wenn sich der angegebene Bereich auf einem anderen (nicht aktiven) Arbeitsblatt befindet, müssen Sie das Sheets-Objekt jedes Mal einschließen. Zum Beispiel:

Application.Goto Sheets("Sheet1").Range( _
      Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
      Sheets("Sheet1").Cells(4, 5)))

Für jedes Element in Anführungszeichen (beispielsweise der benannte Bereich "Test") können Sie auch eine Variable verwenden, deren Wert eine Textzeichenfolge ist. Beispiel: anstelle von

ActiveWorkbook.Sheets("Sheet1").Activate

Sie können Folgendes verwenden.

ActiveWorkbook.Sheets(myVar).Activate

wobei der Wert von MyVar "Sheet1" ist.