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:

Laufzeitfehler 1004 bei zu hohen Offset
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