VBA VERSCHUIVING

Excel VBA OFFSET-functie

VBA Offset- functie wordt gebruikt om een ​​referentie te verplaatsen of te verwijzen naar een bepaald aantal rijen en kolommen, de argumenten voor deze functie in VBA zijn hetzelfde als voor de argumenten in het werkblad.

Stel bijvoorbeeld dat u over een set gegevens beschikt zoals de onderstaande.

Nu wilt u vanuit cel A1 4 cellen naar beneden gaan en die 5e cel selecteren, dwz A5-cel.

Evenzo, als u vanaf cel A1 2 rijen omlaag wilt gaan en 2 kolommen naar rechts wilt gaan en die cel wilt selecteren, dwz cel C2.

In deze gevallen is de OFFSET-functie erg handig. Vooral in VBA OFFSET-functie is gewoon fenomenaal.

OFFSET wordt gebruikt met Range Object in Excel VBA

In VBA kunnen we het woord OFFSET niet rechtstreeks invoeren. We moeten eerst het VBA RANGE-object gebruiken en vanuit dat bereikobject kunnen we de eigenschap OFFSET gebruiken.

In Excel is bereik niets anders dan een cel of bereik van de cel. Omdat OFFSET verwijst naar cellen, moeten we eerst het object RANGE gebruiken en daarna kunnen we de OFFSET-methode gebruiken.

Syntaxis van OFFSET in VBA Excel

  • Rij-offset: hoeveel rijen u wilt verschuiven ten opzichte van de geselecteerde cel. De hier geselecteerde cel is A1, dwz bereik ("A1").
  • Kolomverschuiving: hoeveel kolommen u wilt verschuiven ten opzichte van de geselecteerde cel. De hier geselecteerde cel is A1, dwz bereik ("A1").

Voorbeelden

U kunt deze VBA OFFSET-sjabloon hier downloaden - VBA OFFSET-sjabloon

Voorbeeld 1

Beschouw de onderstaande gegevens als voorbeeld van een demonstratie.

Nu wil ik cel A6 selecteren uit cel A1. Start de macro en de referentiecel met behulp van het Range-object.

Code:

 Sub Offset_Example1 () Bereik ("A1"). Offset (End Sub 

Nu wil ik de cel A6 selecteren, dwz ik wil 5 cellen naar beneden doen. Voer dus 5 in als parameter voor Rij-offset.

Code:

 Sub Offset_Example1 () Bereik ("A1"). Offset (5 End Sub 

Omdat ik in dezelfde kolom selecteer, laat ik het kolomgedeelte weg. Sluit de haak en plaats een punt (.) En typ de methode "Select".

Code:

 Sub Offset_Example1 () Bereik ("A1"). Offset (5). Selecteer End Sub 

Voer nu deze code uit met behulp van de F5-toets of u kunt handmatig uitvoeren om de cel A6 te selecteren, zoals hieronder wordt weergegeven.

Uitgang:

Voorbeeld # 2

Neem nu dezelfde gegevens, maar hier ziet u hoe u ook het argument voor kolomverschuiving kunt gebruiken. Nu wil ik de cel C5 selecteren.

Omdat ik cel C5 wil selecteren, wil ik eerst 4 cellen naar beneden gaan en de juiste 2 kolommen nemen om cel C5 te bereiken. De onderstaande code zou het werk voor mij doen.

Code:

 Sub Offset_Example2 () Bereik ("A1"). Offset (4, 2). Selecteer End Sub 

Ik voer deze code handmatig uit of gebruik de F5-toets en vervolgens wordt de cel C5 geselecteerd zoals weergegeven in de onderstaande schermafbeelding.

Uitgang:

Voorbeeld # 3

We hebben gezien hoe rijen en kolommen te verschuiven. We kunnen ook de bovenstaande cellen uit de opgegeven cellen selecteren. Als u zich bijvoorbeeld in cel A10 bevindt en u wilt cel A1 selecteren, hoe selecteert u dan?

In het geval dat we de cel naar beneden gaan, kunnen we een positief getal invoeren, dus in het geval dat we naar boven gaan, moeten we negatieve getallen invoeren.

Vanaf cel A9 moeten we 8 rijen omhoog gaan, dwz -8.

Code:

 Sub Offset_Example1 () Bereik ("A9"). Offset (-8). Selecteer End Sub 

Als u deze code uitvoert met de F5-toets of u kunt deze code handmatig uitvoeren, wordt de cel A1 uit A9-cel geselecteerd.

Uitgang:

Voorbeeld # 4

Stel dat u zich in cel C8 bevindt. Vanuit deze cel wilt u de cel A10 selecteren.

Vanuit de actieve cel, dwz cel C8, moeten we eerst 2 rijen omlaag gaan en 2 kolommen naar links om cel A10 te selecteren.

Als we naar links gaan om de kolom te selecteren, moeten we specificeren dat het getal negatief is. Dus hier moeten we terugkomen met -2 kolommen.

Code:

 Sub Offset_Example2 () Bereik ("C8"). Offset (2, -2). Selecteer End Sub 

Voer nu deze code uit met de F5-toets of voer handmatig uit, het zal de A10-cel selecteren zoals hieronder weergegeven:

Uitgang:

Dingen om te onthouden

  • Als we rijen omhoog gaan, moeten we het aantal in negatieven specificeren.
  • Als u naar links gaat om de kolom te selecteren, moet het getal negatief zijn.
  • A1-cel is de eerste rij en eerste kolom.
  • Actieve cel betekent momenteel geselecteerde cellen.
  • Als u de cel met OFFSET wilt selecteren, moet u ".Select" vermelden.
  • Als u de cel wilt kopiëren met OFFSET, moet u ".Copy" vermelden.