Deze tutorial laat zien hoe je Activecell Offset in VBA kunt gebruiken.
De ActiveCell is een eigenschap van VBA die het celadres van de actieve cel in uw werkblad vertegenwoordigt. Als uw muisaanwijzer zich in cel A1 bevindt, retourneert de eigenschap ActiveCell in VBA het celadres van "A1". Het zijn een aantal eigenschappen en methoden die zijn verbonden met de ActiveCell. In dit artikel concentreren we ons op de ActiveCell.Offset-methode.
Eigenschappen en methoden van ActiveCell.Offset
Activecell.Offset heeft een aantal eigenschappen en methoden die kunnen worden geprogrammeerd met VBA. Om de beschikbare eigenschappen en methoden te bekijken, typt u de volgende instructie in een procedure zoals hieronder weergegeven en drukt u op de punttoets op het toetsenbord om een vervolgkeuzelijst te zien.
Methoden worden weergegeven door het groene methodepictogram en eigenschappen door het kleine handpictogram. De eigenschappen en methoden voor de Activecell.Offset-methode zijn hetzelfde als voor de Activecell-methode.
ActiveCell.Offset-syntaxis
De syntaxis van Activecell.Offset is als volgt:
waarbij de RowOffset en ColumnOffset het aantal te verschuiven rijen is (positieve getallen voor omlaag, negatief getal voor omhoog) of het aantal kolommen dat u wilt verschuiven (positieve getallen verschuivingen naar rechts, negatief getal naar links).
ActiveCell.Offset… Selecteer
De Activecell.Offset… Selecteer methode is de meest gebruikte methode voor met Activecell.Offset methode. Hiermee kunt u naar een andere cel in uw werkblad gaan. U kunt deze methode gebruiken om over kolommen of rijen omhoog of omlaag in uw werkblad te gaan.
Om een rij naar beneden te gaan, maar in dezelfde kolom te blijven:
1 | Activecell.Offset(1,0).Selecteer |
Om over een kolom te bewegen, maar in dezelfde rij te blijven:
1 | Activecell.Offset (0,1).Selecteer |
Om een rij omlaag en over een kolom te gaan:
1 | Activecell.Offset (1,1).Selecteer |
Een rij omhoog gaan:
1 | Activecell.Offset(-1,0).Selecteer |
Een kolom naar links verplaatsen:
1 | Activecell.Offset(0,-1).Selecteren |
In de onderstaande procedure doorlopen we een reeks cellen en gaan we een rij naar beneden en over een kolom terwijl we de lus doen:
12345678 | Sub ActiveCellTest()Dim x als geheel getalBereik ("A1"). SelecteerVoor x = 1 tot 10ActiveCell = xActiveCell.Offset(1, 1).SelecteerVolgende xEinde sub |
Het resultaat hiervan is te zien in onderstaande grafiek:
The Loop zet de waarde van i (1-10) in de Actieve cel, en dan gebruikt het de Activecell.Offset eigenschap om één rij naar beneden en één kolom naar rechts te verplaatsen - deze lus 10 keer herhalen.
VBA-programmering | Code Generator werkt voor u!
Bereikobject gebruiken met Activecell.Offset Select
Het gebruik van het bereikobject met de actieve cel kan sommige mensen soms verwarren.
Overweeg de volgende procedure:
1234 | Sub ActiveCellOffsetRange()Bereik ("B1: B10"). SelecteerActiveCell.Offset(1, 1).Bereik("A1").SelecteerEinde sub |
Met de ActiveCell.Offset(1,1.Range(“A1”), is het bereik (“A1”) gespecificeerd. Dit betekent echter niet dat cel A1 in het blad wordt geselecteerd. Omdat we het bereik hebben gespecificeerd ("B1:B10"), cel A1 in dat bereik is eigenlijk cel B1 in de werkmap. Daarom wordt de cel verschoven met 1 rij en 1 kolom van cel B1 NIET van cel A1.
Daarom is het bereik ("A1") in dit geval niet vereist, omdat de macro er op dezelfde manier mee werkt of zonder.
Alternatieven voor ActiveCell
In plaats van Activecell te gebruiken met de Offset-methode, kunnen we ook het Range-object gebruiken met de Offset-methode.
123 | SubbereikOffset()Bereik ("B1"). Offset (0, 1). SelecteerEinde sub |
De bovenstaande procedure zou cel C1 in het werkblad selecteren.