Variabilní rozsah VBA Příklady proměnného rozsahu v aplikaci Excel VBA

Proměnná rozsahu VBA aplikace Excel

Proměnné jsou srdcem a duší všech velkých projektů VBA, protože proměnné jsou srdcem a duší, pak je v tomto ohledu velmi důležitý také druh datového typu, který jim přiřadíme. V našich mnoha dřívějších článcích jsme mnohokrát diskutovali o proměnných a jejich důležitosti datových typů. Jednou takovou proměnnou a datovým typem je „Range Variable“, v tomto speciálním článku poskytneme kompletní průvodce „Range Variable“ v aplikaci Excel VBA.

Co je proměnná rozsahu v aplikaci Excel VBA?

Stejně jako každá jiná proměnná Range ve VBA je proměnná také proměnnou, ale je to „Object Variable“, kterou používáme k nastavení odkazu na konkrétní rozsah buněk.

Jako každé jiné proměnné můžeme proměnné dát jakýkoli název, ale datový typ, který jí přiřadíme, by měl být „Rozsah“. Jakmile se datový typ přiřazený k proměnné stane „objektovou proměnnou“ a na rozdíl od jiné proměnné nemůžeme začít používat proměnnou, než nastavíme odkaz na objekty v případě objektových proměnných.

Poté, co deklarujeme proměnnou, musíme použít klíčové slovo „SET“ pro nastavení odkazu na objekt, v tomto případě Range objektu.

Dobře, teď uvidíme některé z příkladů Excel VBA Range Variables prakticky.

Příklady proměnné rozsahu v aplikaci Excel VBA

Tuto šablonu Excel s proměnným rozsahem VBA si můžete stáhnout zde - Šablona Excel s proměnným rozsahem VBA

Předpokládejme například, že chcete vybrat rozsah buněk od A2 do B10 pro níže uvedený snímek obrazovky.

Chcete-li vybrat tento zmíněný rozsah buněk, zatímco máme objekt RANGE a uvnitř objektu rozsahu, uvedli jsme adresu buňky v uvozovkách.

Kód:

 Sub Range_Variable_Example () Range ("A2: B10") End Sub 

Jakmile je rozsah buněk zmíněn pomocí objektu RANGE, pokud vložíte tečku, uvidíme všechny vlastnosti a metody spojené s tímto objektem rozsahu.

Kód:

Sub Range_Variable_Example () Range ("A2: B10"). End Sub

Jelikož musíme vybrat zmíněné buňky jednoduše, vyberte ze seznamu IntelliSense metodu „Vybrat“.

Kód:

 Sub Range_Variable_Example () Range ("A2: B10"). Vyberte End Sub 

Spusťte kód a vybere uvedené buňky.

To je zřejmé, že ano, ale představte si scénář použití stejného rozsahu v dlouhém projektu VBA, řekněme stokrát, psaní stejného kódu „Range („ A2: A10 “) 100krát bude nějakou dobu trvat, ale místo toho deklarujeme proměnnou a přiřadíme datový typ jako objekt „Range“.

Dobře, pojďme pojmenovat proměnnou a přiřadit datový typ jako „Rozsah“.

Kromě „Object Variables“ můžeme začít používat proměnné podle jejich názvu, ale v případě „Object Variables“ musíme nastavit odkaz.

Například v tomto případě je naším objektem proměnné (Rng) rozsah, takže musíme nastavit odkaz, na který bude slovo „Rng“ odkazovat. K nastavení reference je třeba použít klíčové slovo „Nastavit“.

Proměnná „Rng“ nyní odkazuje na rozsah buněk od A2 do B10, namísto psaní „Range („ A2: B10 “))“ pokaždé, když můžeme jednoduše napsat slovo „Rng“ .

V dalším řádku uveďte název proměnné „Rng“ a tečkou zobrazte kouzlo.

Jak vidíte výše, můžeme vidět všechny vlastnosti a metody objektu rozsahu jako ten předchozí.

Udělejte proměnnou dynamickou

Nyní víme, jak nastavit odkaz na rozsah buněk, ale jakmile zmíníme rozsah buněk, které se drží pouze na těchto buňkách, jakékoli přidání nebo odstranění buněk tyto buňky neovlivní.

Hledání nového rozsahu buněk po přidání nebo odstranění buněk tedy činí proměnnou dynamickou. To je možné vyhledáním posledního použitého řádku a sloupce.

Abychom našli poslední použitý řádek a sloupec, musíme definovat další dvě proměnné.

Kód:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Poslední řádek pro porozumění Dim LC As Long' LC = Poslední sloupec pro porozumění End Sub 

Níže pod kódem najdete poslední použitý řádek a sloupec, než nastavíme odkaz na proměnnou objektu rozsahu.

Kód:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Poslední řádek pro porozumění Dim LC As Long' LC = Poslední sloupec pro porozumění LR = Buňky (Rows.Count, 1). End (xlUp) .Row LC = Buňky (1, Columns.Count) .End (xlToLeft). Sub End End Sub 

Nyní otevřete prohlášení o klíčových slovech „Nastavit“.

Kód:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Poslední řádek pro porozumění Dim LC As Long' LC = Poslední sloupec pro porozumění LR = Buňky (Rows.Count, 1). End (xlUp) .Row LC = Buňky (1, Columns.Count) .End (xlToLeft) .Column Set Rng = End Sub 

Na rozdíl od předchozí metody tentokrát používáme vlastnosti VBA CELLS.

Kód:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Poslední řádek pro porozumění Dim LC As Long' LC = Poslední sloupec pro porozumění LR = Buňky (Rows.Count, 1). End (xlUp) .Row LC = Buňky (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) End Sub 

Zmínil jsem buňky (1,1), tj. To se týká první buňky na aktivním listu, ale potřebujeme odkaz na rozsah dat, takže použijte vlastnost „ZMĚNIT VELIKOST“ a uveďte proměnné „poslední použitý řádek a sloupec“.

Kód:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Poslední řádek pro porozumění Dim LC As Long' LC = Poslední sloupec pro porozumění LR = Buňky (Rows.Count, 1). End (xlUp) .Row LC = Buňky (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) .Resize (LR, LC) End Sub 

Nyní nastavíte nejnovější odkaz na proměnnou objektu rozsahu „Rng“. Dále uveďte název proměnné a použijte metodu „Vybrat“.

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Poslední řádek pro porozumění Dim LC As Long' LC = Poslední sloupec pro porozumění LR = Buňky (Rows.Count, 1). End (xlUp) .Row LC = Buňky (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1). Resize (LR, LC) Rng. Select End Sub 

Nyní ke svým údajům přidám několik dalších řádků.

Přidal jsem tři další řádky dat, pokud nyní spustím kód, měl by vybrat nejnovější rozsah dat.

Věci k zapamatování

  • Proměnná rozsahu v aplikaci Excel VBA je proměnná objektu.
  • Kdykoli použijeme proměnnou objektu, musíme použít klíčové slovo „Nastavit“ a nastavit odkaz na objekt na proměnnou.
  • Bez nastavení reference nemůžeme použít objektovou proměnnou.

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