Tento článek je o funkci Offset ve VBA. (Funkce OFFSET (funguje obdobně, ale ne stejně) je také v běžném Excelu.)

Funkce Offset posouvá určitou vybranou oblast o určitý počet sloupců nahoru, dolů, doleva, doprava, a dá se tak dobře použít k jednoduchému “pohybu” v tabulce.

Typické příklady:

Posun z konkrétní buňky

Příkaz, který vybere buňku, která je jeden řádek dolů a dva sloupce doprava od buňky A1.

posun

Range("a1").Offset(1, 2).Select

Posun z právě aktivní buňky

Příkaz, který vybere buňku, která je jeden řádek dolů a dva sloupce doprava od právě aktivní buňky.  Toto použití je asi zajímavějí než to předchozí – zatímco předchozí příkaz by šel nahradit obyčejným Range(“C2”).Select, tak v tomto druhém případě vlastně dopředu nevíme, která buňka je zrovna aktivní, a nevíme, odkud se posouvat.

ActiveCell.Offset(2, 1).Select

Zápis hodnoty

Offset nemusíme samozřejmě použít pouze pro vybírání – s buňkou můžeme rovnou cokoliv provést, například dát jí hodnotu pět…

ActiveCell.Offset(-1,-2).Value = 5