Funkce VBA OFFSET | Jak používat ofsetovou vlastnost Excel VBA (příklad)
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á.
Nyní z buňky A1 chcete posunout o 4 buňky dolů a chcete vybrat tu 5. buňku, tj. Buňku A5.
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 a z tohoto objektu rozsahu můžeme použít vlastnost OFFSET.
V rozsahu aplikace Excel není 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 poté můžeme použít metodu OFFSET.
Syntaxe OFSETU ve VBA Excel
- Posun řádků: Kolik řádků chcete odsadit od vybrané buňky. Zde je vybrána buňka A1, tj. Rozsah („A1“).
- Posun sloupců: Kolik sloupců chcete odsadit od vybrané buňky. Zde je vybrána buňka A1, tj. Rozsah („A1“).
Příklady
Tuto šablonu VBA OFFSET si můžete stáhnout zde - VBA OFFSET TemplatePříklad č. 1
Zvažte níže uvedená data, například ukázku.
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
Teď 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, abych se dostal do 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 přesunout o 8 řádků, 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, 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 „.Select“.
- Pokud chcete buňku zkopírovat pomocí OFSETU, musíte uvést „.Copy“.