Funkcia Excel VBA OFFSET
Funkcia VBA Offset sa používa na presun alebo odkaz na referenciu preskakujúcu určitý počet riadkov a stĺpcov, argumenty pre túto funkciu vo VBA sú rovnaké ako argumenty v hárku.
Predpokladajme napríklad, že máte množinu údajov, ako je tá uvedená nižšie.

Teraz z bunky A1 chcete presunúť o 4 bunky nadol a chcete vybrať túto piatu bunku, tj. Bunku A5.
Podobne, ak sa chcete presunúť nadol z bunky A1 o 2 riadky a prejsť o 2 stĺpce doprava a vybrať túto bunku, tj. Bunku C2.
V týchto prípadoch je funkcia OFFSET veľmi užitočná. Najmä vo VBA OFFSET je funkcia fenomenálna.
OFFSET sa používa s objektom rozsahu v programe Excel VBA
Vo VBA nemôžeme priamo zadať slovo OFFSET. Najprv musíme použiť objekt VBA RANGE a z tohto rozsahu objektu môžeme použiť vlastnosť OFFSET.
V programe Excel nie je rozsah nič iné ako bunka alebo rozsah bunky. Keďže OFFSET odkazuje na bunky, musíme najskôr použiť objekt RANGE a až potom môžeme použiť metódu OFFSET.
Syntax ofsetu vo VBA programe Excel

- Posun riadkov: Koľko riadkov chcete posunúť od vybranej bunky. Tu je vybratá bunka A1, tj. Rozsah („A1“).
- Posun stĺpca: Koľko stĺpcov chcete posunúť od vybranej bunky. Tu je vybratá bunka A, 1, tj. Rozsah („A1“).
Príklady
Príklad č
Zvážte nasledujúce údaje, napríklad demonštráciu.

Teraz chcem vybrať bunku A6 z bunky A1. Spustite makro a referenčnú bunku pomocou objektu Range.
Kód:
Sub Offset_Example1 () Range ("A1"). Offset (End Sub

Teraz chcem vybrať bunku A6, tj. Chcem urobiť dole 5 buniek. Zadajte teda 5 ako parameter pre offset riadku.
Kód:
Sub Offset_Example1 () Range ("A1"). Offset (5 End Sub

Pretože vyberám v rovnakom stĺpci, vynechám stĺpcovú časť. Zatvorte zátvorku a vložte bodku (.) A zadajte metódu „Vybrať“.
Kód:
Sub Offset_Example1 () Range ("A1"). Offset (5). Vyberte End Sub

Teraz tento kód spustite pomocou klávesu F5, alebo môžete spustiť manuálne a zvoliť bunku A6, ako je uvedené nižšie.

Výkon:

Príklad č
Teraz vezmite rovnaké údaje, ale tu sa dozviete, ako použiť aj argument offset stĺpca. Teraz chcem vybrať bunku C5.
Pretože chcem najskôr vybrať bunku C5, chcem sa presunúť o 4 bunky nižšie a dostať sa do správnych 2 stĺpcov, aby som sa dostal do bunky C5. Nižšie uvedený kód by urobil prácu za mňa.
Kód:
Sub Offset_Example2 () Range ("A1"). Offset (4, 2). Vyberte End Sub

Tento kód spustím ručne alebo pomocou klávesu F5. Potom vyberie bunku C5, ako je znázornené na obrázku nižšie.

Výkon:

Príklad č
Videli sme, ako vyrovnať riadky a stĺpce. Môžeme tiež vybrať vyššie uvedené bunky zo zadaných buniek. Ak sa napríklad nachádzate v bunke A10 a chcete vybrať bunku A1, ako to vyberiete?
V prípade posunu nadol o bunku môžeme zadať kladné číslo, takže tu v prípade posunutia nahor musíme zadať záporné čísla.
Z bunky A9 sa musíme posunúť o 8 riadkov vyššie, tj. -8.
Kód:
Sub Offset_Example1 () Range ("A9"). Offset (-8). Vyberte End Sub

Ak tento kód spustíte pomocou klávesu F5 alebo ho môžete spustiť manuálne, vyberie bunku A1 z bunky A9.

Výkon:

Príklad č
Predpokladajme, že ste v bunke C8. Z tejto bunky chcete vybrať bunku A10.
Z aktívnej bunky, tj. Bunky C8, sa najskôr musíme presunúť o 2 riadky nižšie a na výber bunky A10 sa musíme posunúť doľava o 2 stĺpce.
V prípade, že sa chcete pohybovať doľava a vybrať stĺpec, musíme zadať záporné číslo. Takže tu sa musíme vrátiť o -2 stĺpce.
Kód:
Sub Offset_Example2 () Range ("C8"). Offset (2, -2). Vyberte End Sub

Teraz tento kód spustite pomocou klávesu F5 alebo spustite manuálne, vyberie bunku A10, ako je uvedené nižšie:

Výkon:

Na čo treba pamätať
- V prípade posunutia riadkov nahor je potrebné uviesť počet v negatívach.
- V prípade presunutia doľava na výber stĺpca by malo byť číslo záporné.
- Bunka A1 je prvý riadok a prvý stĺpec.
- Aktívna bunka znamená v súčasnosti vybrané bunky.
- Ak chcete bunku vybrať pomocou OFSETU, musíte spomenúť „.Vybrať“.
- Ak chcete bunku skopírovať pomocou funkcie OFFSET, musíte spomenúť „.Copy“.