VBA – ActiveCell Offset
In this Article
In diesem Tutorial zeigen Wir Ihnen, wie Sie Activecell.Offset in VBA verwenden können.
ActiveCell ist eine VBA-Eigenschaft, die die Adresse der aktuellen Zelle in Ihrem Arbeitsblatt darstellt. Wenn sich der Cursor in der Zelle A1 befindet, gibt die ActiveCell-Eigenschaft in VBA die Zellenadresse „A1“ zurück. Es gibt eine Reihe von Eigenschaften und Methoden, die mit ActiveCell verbunden sind. In diesem Artikel konzentrieren wir uns auf die Methode ActiveCell.Offset.
ActiveCell.Offset – Eigenschaften und Methoden
ActiveCell.Offset verfügt über eine Reihe von Eigenschaften und Methoden, die mit VBA programmiert werden können. Um die verfügbaren Eigenschaften und Methoden anzuzeigen, geben Sie die folgende Anweisung in eine Prozedur ein (siehe unten) und drücken Sie die Punkttaste auf der Tastatur, um eine Dropdown-Liste anzuzeigen.
Methoden werden durch das grüne Methodensymbol und Eigenschaften durch das kleine Handsymbol dargestellt. Die Eigenschaften und Methoden für die Methode ActiveCell.Offset sind dieselben wie für die ActiveCell-Methode.
ActiveCell.Offset – Syntax
Die Syntax von ActiveCell.Offset lautet wie folgt:
wobei RowOffset und ColumnOffset die Anzahl Versatzeilen (positive Zahlen für nach unten, negative Zahlen für nach oben) und die Anzahl der Versatzspalten (positive Zahlen für nach rechts, negative Zahlen für nach links) sind.
ActiveCell.Offset..Select
Die Methode Activecell.Offset..Select ist die am häufigsten verwendete Methode bei Activecell.Offset. Mit ihr können Sie zu einer anderen Zelle in Ihrem Arbeitsblatt wechseln. Sie können diese Methode verwenden, um in Ihrem Arbeitsblatt spalten- oder zeilenweise zu arbeiten.
Um eine Zeile nach unten zu verschieben, aber in der gleichen Spalte zu bleiben:
ActiveCell.Offset(1,0).Select
Um sich um eine Spalte zu bewegen, aber in der gleichen Zeile zu bleiben:
ActiveCell.Offset(0,1).Select
Um eine Zeile nach unten und eine Spalte nach rechts zu springen:
ActiveCell.Offset(1,1).Select
Um eine Zeile nach oben zu springen:
ActiveCell.Offset(-1,0).Select
Um eine Spalte nach links zu springen:
ActiveCell.Offset(0,-1).Select
In der folgenden Prozedur durchlaufen wir einen Zellenbereich und bewegen uns in der Schleife eine Zeile nach unten und eine Spalte nach rechts:
Sub ActiveCellTesten()
Dim x As Integer
Range("A1").Select
For x = 1 To 10
ActiveCell = x
ActiveCell.Offset(1, 1).Select
Next x
End Sub
Das Ergebnis ist in der folgenden Grafik dargestellt:
Die Schleife fügt den Wert von i (1-10) in die ActiveCell ein und verwendet dann die Eigenschaft Activecell.Offset, um sich eine Zeile nach unten und eine Spalte nach rechts zu bewegen. Diese Schleife wird 10 Mal wiederholt.
Verwendung des Range-Objekts mit Activecell.Offset..Select
Die Verwendung des Range-Objekts mit der ActiveCell kann manche Leute verwirren.
Betrachten Sie die folgende Vorgehensweise:
Sub AktuelleZelleVerschieben_Bereich()
Range("B1: B10").Select
ActiveCell.Offset(1, 1).Range("A1").Select
End Sub
Mit ActiveCell.Offset(1,1).Range(„A1“) wurde der Range(„A1“) angegeben. Das bedeutet jedoch nicht, dass die Zelle A1 auf dem Blatt ausgewählt wird. Da wir den Range(„B1:B10“) angegeben haben, ist Zelle A1 in diesem Bereich eigentlich Zelle B1 in der Arbeitsmappe. Daher wird die Zelle um 1 Zeile und 1 Spalte von Zelle B1 und nicht von Zelle A1 verschoben .
Daher ist der Range(„A1“) in diesem Fall nicht erforderlich, da das Makro mit oder ohne ihn auf die gleiche Weise funktioniert.
Alternativen zu ActiveCell
Anstatt ActiveCell mit der Offset-Methode zu verwenden, können wir auch das Range-Objekt mit der Offset-Methode verwenden.
Sub BereichVerschieben()
Range("B1").Offset(0, 1).Select
End Sub
Das obige Verfahren würde die Zelle C1 im Arbeitsblatt auswählen.