Tento tutoriál předvede, jak používat Activecell Offset ve VBA.
ActiveCell je vlastnost VBA, která představuje adresu buňky aktivní buňky v listu. Pokud je ukazatel myši umístěn v buňce A1, pak vlastnost ActiveCell ve VBA vrátí adresu buňky „A1“. Existuje řada vlastností a metod, které jsou připojeny k ActiveCell. V tomto článku se soustředíme na metodu ActiveCell.Offset.
Vlastnosti a metody ActiveCell.Offset
Activecell.Offset má k dispozici řadu vlastností a metod, které lze programovat pomocí VBA. Chcete -li zobrazit dostupné vlastnosti a metody, zadejte následující příkaz v níže uvedeném postupu a stisknutím klávesy s tečkou na klávesnici zobrazte rozevírací seznam.
Metody jsou znázorněny zelenou ikonou metody a vlastnosti malou ikonou ruky. Vlastnosti a metody pro metodu Activecell.Offset jsou stejné jako pro metodu Activecell.
Syntaxe ActiveCell.Offset
Syntaxe Activecell.Offset je následující
kde RowOffset a ColumnOffset je počet řádků k odsazení (kladná čísla dolů, záporná čísla nahoru) nebo počet sloupců, které si přejete odsadit (kladná čísla odsazují doprava, záporná čísla nalevo).
ActiveCell.Offset… Vyberte
The Activecell.Offset … Vyberte metoda je nejčastěji používanou metodou pro metodu Activecell.Offset. Umožňuje vám přejít na jinou buňku v listu. Tuto metodu můžete použít k přesunu mezi sloupci nebo řádky nahoru nebo dolů v listu.
Chcete -li se posunout o řádek dolů, ale zůstat ve stejném sloupci:
1 | Activecell.Offset (1,0). Vyberte |
Chcete -li přejít přes sloupec, ale zůstat ve stejném řádku:
1 | Activecell.Offset (0,1). Vyberte |
Postup přesunu o řádek dolů a přes sloupec:
1 | Activecell.Offset (1,1). Vyberte |
Postup o řádek výše:
1 | Activecell.Offset (-1,0). Vyberte |
Přesunutí sloupce doleva:
1 | Activecell.Offset (0, -1). Vyberte |
V níže uvedeném postupu procházíme řadou buněk a pohybujeme se dolů o jeden řádek a přes jeden sloupec při provádění smyčky:
12345678 | Sub ActiveCellTest ()Dim x As IntegerRozsah („A1“). VybertePro x = 1 až 10ActiveCell = xActiveCell.Offset (1, 1). VyberteDalší xEnd Sub |
Výsledek je uveden na obrázku níže:
Smyčka vloží hodnotu i (1-10) do Activecell, a pak použije Activecell.Offset vlastnost přesunout dolů o jeden řádek a přes jeden sloupec doprava - opakování této smyčky 10krát.
Programování VBA | Generátor kódu pracuje pro vás!
Použití objektu Range s Activecell.Offset Select
Použití objektu Range s aktivní buňkou může někdy některé lidi zmást.
Zvažte následující postup:
1234 | Sub ActiveCellOffsetRange ()Rozsah („B1: B10“). VyberteActiveCell.Offset (1, 1). Range ("A1"). VyberteEnd Sub |
U ActiveCell.Offset (1,1.Range („A1“) byl specifikován rozsah („A1“). To však neznamená, že bude vybrána buňka A1 v listu. Jak jsme specifikovali rozsah („B1: B10“), buňka A1 v tomto rozsahu je ve skutečnosti buňkou B1 v sešitu. Proto bude buňka odsazena o 1 řádek a 1 sloupec od buňka B1 NE z buňky A1.
Proto rozsah („A1 ′) v tomto případě není vyžadován, protože makro bude fungovat stejným způsobem s ním nebo bez něj.
Alternativy k ActiveCell
Místo použití Activecell s Offset metodou můžeme také použít Range objekt s Offset metodou.
123 | Podrozsah Offset ()Rozsah („B1“). Offset (0, 1). VyberteEnd Sub |
Výše uvedený postup by vybral buňku C1 v listu.