Funkce OFFSET aplikace Excel VBA
Funkce VBA Offset se používá k přesunutí nebo odkazování na odkaz přeskakující určitý počet řádků a sloupců, argumenty pro tuto funkci ve VBA jsou stejné jako argumenty v listu.
Předpokládejme například, že máte sadu dat, jako je níže uvedená.

Právě z buňky A1, kterou chcete přesunout dolů 4 buněk, a chcete-li zvolit, že 5 th buňku, tj A5 buňky.
Podobně, pokud se chcete přesunout dolů z buňky A1 o 2 řádky a přejít 2 sloupce doprava a vybrat tuto buňku, tj. Buňku C2.
V těchto případech je funkce OFFSET velmi užitečná. Zejména ve VBA OFFSET je funkce fenomenální.
OFFSET se používá s objektem Range v aplikaci Excel VBA
Ve VBA nemůžeme přímo zadat slovo OFFSET. Nejprve musíme použít objekt VBA RANGE az tohoto objektu rozsahu můžeme použít vlastnost OFFSET.
V aplikaci Excel není rozsah nic jiného než buňka nebo rozsah buňky. Protože OFFSET odkazuje na buňky, musíme nejprve použít objekt RANGE a potom můžeme použít metodu OFFSET.
Syntaxe OFSETU ve VBA Excel

- Posun řádků: Kolik řádků chcete odsadit od vybrané buňky. Zde je vybraná buňka A1, tj. Rozsah („A1“).
- Posun sloupců: Kolik sloupců chcete odsadit od vybrané buňky. Zde je vybraná buňka A, 1, tj. Rozsah („A1“).
Příklady
Příklad č. 1
Zvažte níže uvedená data, například demonstraci.

Nyní chci vybrat buňku A6 z buňky A1. Spusťte makro a referenční buňku pomocí objektu Range.
Kód:
Sub Offset_Example1 () Range ("A1"). Offset (End Sub

Nyní chci vybrat buňku A6, tj. Chci udělat dolů 5 buněk. Jako parametr pro offset řádku tedy zadejte 5.
Kód:
Sub Offset_Example1 () Range ("A1"). Offset (5 End Sub

Jelikož vybírám ve stejném sloupci, vynechám část sloupce. Zavřete závorku a vložte tečku (.) A zadejte metodu „Vybrat“.
Kód:
Sub Offset_Example1 () Range ("A1"). Offset (5). Vyberte End Sub

Nyní spusťte tento kód pomocí klávesy F5, nebo můžete spustit ručně a vybrat buňku A6, jak je znázorněno níže.

Výstup:

Příklad č. 2
Nyní vezměte stejná data, ale zde uvidíte, jak také použít argument offset sloupce. Nyní chci vybrat buňku C5.
Vzhledem k tomu, že chci nejprve vybrat buňku C5, chci se posunout dolů o 4 buňky a vzít správné 2 sloupce k dosažení buňky C5. Níže uvedený kód by udělal práci za mě.
Kód:
Sub Offset_Example2 () Range ("A1"). Offset (4, 2). Vyberte End Sub

Tento kód spustím ručně nebo pomocí klávesy F5. Poté vybere buňku C5, jak je znázorněno na následujícím snímku obrazovky.

Výstup:

Příklad č. 3
Viděli jsme, jak vyrovnat řádky a sloupce. Můžeme také vybrat výše uvedené buňky ze zadaných buněk. Pokud jste například v buňce A10 a chcete vybrat buňku A1, jak to vyberete?
V případě pohybu dolů po buňce můžeme zadat kladné číslo, takže zde v případě pohybu nahoru musíme zadat záporná čísla.
Z buňky A9 se musíme posunout o 8 řádků nahoru, tj. -8.
Kód:
Sub Offset_Example1 () Range ("A9"). Offset (-8). Vyberte End Sub

Pokud tento kód spustíte pomocí klávesy F5 nebo můžete tento kód spustit ručně, vybere buňku A1 z buňky A9.

Výstup:

Příklad č. 4
Předpokládejme, že jste v buňce C8. Z této buňky chcete vybrat buňku A10.
Z aktivní buňky l, tj. Buňky C8, se musíme nejprve posunout o 2 řádky dolů a musíme se posunout doleva o 2 sloupce, abychom vybrali buňku A10.
V případě přesunutí doleva k výběru sloupce je třeba zadat číslo záporné. Tady se tedy musíme vrátit o -2 sloupce.
Kód:
Sub Offset_Example2 () Range ("C8"). Offset (2, -2). Vyberte End Sub

Nyní spusťte tento kód pomocí klávesy F5 nebo spusťte ručně, vybere buňku A10, jak je znázorněno níže:

Výstup:

Věci k zapamatování
- V případě posunutí řádků nahoru je nutné zadat počet v negativech.
- V případě přesunutí doleva k výběru sloupce by mělo být číslo záporné.
- Buňka A1 je první řádek a první sloupec.
- Aktivní buňka znamená aktuálně vybrané buňky.
- Pokud chcete buňku vybrat pomocí OFSETU, musíte zmínit „.Vybrat“.
- Pokud chcete buňku zkopírovat pomocí OFSETU , musíte uvést „.Copy“.