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ší, takže druh datového typu, který jim přiřadíme, je v tomto ohledu také velmi důležitým faktorem. 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 v tomto speciálním článku „Proměnná rozsahu“. Dáme 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ý jim přiřadíme, by měl být „Rozsah“. Jakmile je datový typ přiřazen k proměnné, stane se z něj „Objektová proměnná“ a na rozdíl od jiné proměnné nemůžeme začít používat proměnnou, dokud nenastaví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“ k nastavení odkazu na objekt, tj. V tomto případě Range objektu.

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

Příklady proměnné rozsahu v aplikaci Excel 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, všechny tyto, zatímco máme objekt RANGE, a uvnitř objektu rozsahu jsme uvedli 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

Protože musíme zmíněné buňky jednoduše vybrat, zvolte 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 proměnnou deklarujeme a datový typ přiřadíme jako objekt „Range“.

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

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

Například v tomto případě je náš objekt proměnné (Rng) rozsah, takže musíme nastavit odkaz na slovo „Rng“, na které se bude odkazovat. Chcete-li nastavit odkaz, musíme použít klíčové slovo „Nastavit“.

Proměnná „Rng“ nyní odkazuje na rozsah buněk od A2 do B10. Místo toho , abychom pokaždé psali „Range („ A2: B10 “)) , 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 objektů rozsahu, jako je 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, bude se držet pouze těchto buněk. Jakékoli přidání nebo odstranění buněk nebude mít na tyto buňky vliv.

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.

Chcete-li najít 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 Cells (1,1), tj. Odkazuje se na první buňku v aktivním listu, ale potřebujeme odkaz na rozsah dat, proto použijte vlastnost „ZMĚNIT“ 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

Tím se nastaví 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 řádky dat navíc. 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 proměnné.
  • Bez nastavení reference nemůžeme použít objektovou proměnnou.

Zajímavé články...