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 Template

Pří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“.

$config[zx-auto] not found$config[zx-overlay] not found