Offset – Verschieben der aktuellen Position in VBA
In diesem Tutorial zeige ich Euch wie Ihr Offset benutzen könnt um eine Verschiebung der aktuelle Position zu erreichen. Offset hat 2 Parameter. Der erste Parameter ist die Zeile, der zweite Parameter ist die Spalte. Je nachdem welche Zahl Ihr eintragt wird die Position genau um diesen Wert Zellenweise verschoben. Ihr könnt auch negative Werte eintragen. Allerdings müsst Ihr natürlich aufpassen dass Ihr immer über 1 bleibt weil der Compiler verständlicherweise sonst meckert. Denn Zeile oder Spalte 0 oder im Minusbereich gibt es bei Excel ja nicht 😉
Das Startvideo der VBA Tutorial Serie auf YouTube findet Ihr hier
Die Playlist meiner VBA Tutorial Serie auf YouTube findet Ihr hier
Achtung:
Benutzt zum Üben eine separate Tabelle für Testzwecke oder eine Kopie des Originals damit Euch keine Daten verloren gehen.
Video zu diesem Tutorial:
Offset in Excel VBA
Um mit Offset die Position zu verschieben könnt Ihr Offset 2 Parameter übergeben, die mit einem Komma getrennt werden. Der erste Parameter ist die Zeilenanzahl und der zweite Parameter ist die Spaltenanzahl:
Offset(ZeilenAnzahl, SpaltenAnzahl)
Ihr könnt für die Zeilenanzahl oder Spaltenanzahl positive wie auch negative Werte eintragen. Allerdings ist es wichtig, dass Ihr bei negativen Werten darauf achtet, keine Zeilen oder Spalten anzusprechen die kleiner als 1 sind. Das heißt, wenn aktive Zelle zum Beispiel A1 ist, dann könnt Ihr weder eine negative Zeilenanzahl noch eine negative Spaltenanzahl eintragen. Falls Ihr das versucht bekommt Ihr einen Fehler:
Beispielscript 1: Offset in Excel VBA
In dem nachfolgenden Beispiel nehme ich bewusst erst einmal nur positive Werte für Offset. Ihr solltet beim Ausführen des Scripts die Schrittweise Auführung mit der Taste F8 vornehmen damit Ihr Schritt für Schritt die Sache verfolgen könnt. Denkt daran dass die Ausführung erst vor der gelben Markierung stattgefunden hat.
Sub OffsetTutorial1() 'Keine Positionsveränderung ActiveCell.Offset(0, 0).Value = "X" 'Offset verändert die Position 1 Zeile nach unten ActiveCell.Offset(1, 0).Value = "X" 'Offset verändert die Position 5 Zeilen nach unten ActiveCell.Offset(5, 0).Value = "X" 'Offset verändert die Position 1 Spalte nach rechts ActiveCell.Offset(0, 1).Value = "X" 'Offset verändert die Position 5 Spalten nach rechts ActiveCell.Offset(0, 5).Value = "X" 'Offset verändert die Position 2 Zeilen nach unten und 4 Spalten nach rechts ActiveCell.Offset(2, 4).Value = "X" End Sub
Beispielscript 1: Offset in Excel VBA
Beim folgenden Beispiel müsst Ihr darauf achten dass Eure aktive also markierte Zelle weiter rechts unten ist. Nehmt am Besten D4 damit der Compiler nicht meckert. Auch hier solltest Ihr mit der F8 Taste die Schrittweise Ausführung ablaufen lassen um die Sache besser verfolgen zu können.
Sub OffsetTutorial2() 'Keine Positionsveränderung ActiveCell.Offset(0, 0).Value = "X" 'Offset verändert die Position 1 Zeile nach oben ActiveCell.Offset(-1, 0).Value = "X" 'Offset verändert die Position 1 Spalte nach links ActiveCell.Offset(0, -1).Value = "X" 'Offset verändert die Position 2 Zeilen nach oben und 2 Spalten nach links ActiveCell.Offset(-2, -2).Value = "X" 'Offset verändert die Position 2 Zeilen nach unten und 2 Spalten nach rechts ActiveCell.Offset(2, 2).Value = "X" 'Offset verändert die Position 2 Zeilen nach oben und 2 Spalten nach rechts ActiveCell.Offset(-2, 2).Value = "X" 'Offset verändert die Position 2 Zeilen nach unten und 2 Spalten nach links ActiveCell.Offset(2, -2).Value = "X" End Sub
Das könnte Dich auch interessieren
- Auf Zellen zugreifen mit Cells in Excel VBA
- Cells und Range kombiniert in Excel VBA
- Eine eigene Funktion erstellen ganz einfach (Excel)
- Entwicklertools anzeigen / Makro / VBA Visual Basic (Microsoft Word)
- For Each Schleife in Excel VBA
- For Next Schleife in Excel VBA
- Gefüllte Zellen markieren mit und ohne Lücken in Excel VBA
- Gültigkeitsbereich von Variablen in Excel VBA
- Hello World mit Excel VBA programmieren