Variabilný rozsah VBA Príklady premenlivého rozsahu v programe Excel VBA

Premenná rozsahu VBA programu Excel

Premenné sú srdcom a dušou všetkých veľkých projektov VBA, pretože premenné sú srdcom a dušou, preto je v tomto ohľade veľmi dôležitým faktorom aj druh dátového typu, ktorý im priradíme. V našich mnohých predchádzajúcich článkoch sme už mnohokrát diskutovali o premenných a ich dôležitosti dátových typov. Jednou z takýchto premenných a dátovým typom je v tomto špeciálnom článku článok „Premenná rozsahu“. Dáme kompletného sprievodcu po „Range Variable“ v programe Excel VBA.

Čo je premenná rozsahu v programe Excel VBA?

Rovnako ako každá iná premenná Range vo VBA, aj premenná je premenná, ale jedná sa o „objektovú premennú“, ktorú používame na nastavenie odkazu na konkrétny rozsah buniek.

Rovnako ako každú inú premennú, aj my môžeme premennej dať akýkoľvek názov, ale dátový typ, ktorý im priradíme, by mal byť „rozsah“. Keď je dátový typ priradený k premennej, stane sa z nej „objektová premenná“ a na rozdiel od inej premennej nemôžeme premennú začať používať skôr, ako v prípade objektových premenných nastavíme odkaz na objekty.

Takže po deklarácii premennej musíme na nastavenie referencie objektu použiť kľúčové slovo „SET“ , v tomto prípade teda Range objekt.

Ok, teraz uvidíme niektoré z príkladov vynikajúcich premenných rozsahu VBA v praxi.

Príklady premennej rozsahu v programe Excel VBA

Predpokladajme napríklad, že chcete pre nasledujúci obrázok snímky obrazovky vybrať rozsah buniek od A2 po B10.

Aby sme vybrali spomínaný rozsah buniek, všetky tieto, kým máme objekt RANGE, a vo vnútri objektu rozsahu sme uviedli adresu bunky v dvojitých úvodzovkách.

Kód:

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

Po zadaní rozsahu buniek pomocou objektu RANGE, ak dáte bodku, zobrazili by sa všetky vlastnosti a metódy spojené s týmto objektom rozsahu.

Kód:

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

Pretože musíme spomenuté bunky jednoducho vybrať, zvoľte zo zoznamu IntelliSense metódu „Select“.

Kód:

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

Spustite kód a vyberie uvedené bunky.

To je zrejmé, nie, ale predstavte si, že scenár použitia rovnakého rozsahu v dlhom projekte VBA povedzme stokrát, napísanie rovnakého kódu „Range („ A2: A10 “) 100krát bude nejaký čas trvať, ale namiesto toho deklarujeme premennú a priradíme dátový typ ako objekt „Range“.

Dobre, dajte premennej svoje vlastné meno a priraďte dátový typ ako „Rozsah“.

Okrem „Objektových premenných“ môžeme začať používať premenné podľa ich názvu, ale v prípade „Objektových premenných“ je potrebné nastaviť odkaz.

Napríklad v tomto prípade je našou premennou (Rng) objekt rozsah, takže musíme nastaviť odkaz na slovo „Rng“, na ktoré sa bude odkazovať. Na nastavenie referencie je potrebné použiť kľúčové slovo „Nastaviť“.

Teraz sa premenná „Rng“ vzťahuje na rozsah buniek od A2 do B10. Namiesto toho, aby sme vždy písali „Rozsah („ A2: B10 “)) , môžeme jednoducho napísať slovo „ Rng “.

V ďalšom riadku uveďte názov premennej „Rng“ a vložte bodku, aby ste videli kúzlo.

Ako vidíte vyššie, môžeme vidieť všetky vlastnosti a metódy objektov rozsahu ako predchádzajúci.

Urobte premennú dynamickou

Teraz vieme, ako nastaviť odkaz na rozsah buniek, ale akonáhle spomenieme rozsah buniek, bude sa držať iba týchto buniek. Akékoľvek pridanie alebo vymazanie buniek nebude mať na tieto bunky vplyv.

Nájdenie nového rozsahu buniek po akomkoľvek pridaní alebo odstránení buniek teda robí premennú dynamickou. To je možné vyhľadaním posledného použitého riadku a stĺpca.

Aby sme našli posledný použitý riadok a stĺpec, musíme definovať ďalšie dve premenné.

Kód:

Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding End Sub

Now below code will find the last used row & column before we set the reference to a range object variable.

Code:

Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column End Sub

Now open the “Set” keyword statement.

Code:

Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Set Rng = End Sub

Unlike the previous method, we use VBA CELLS properties this time.

Code:

Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Set Rng = Cells(1, 1) End Sub

I have mentioned Cells(1,1), i.e., this refers to the first cell in the active sheet, but we need the data range reference, so use the “RESIZE” property and mention “last used row & column” variables.

Code:

Sub Range_Variable_Example() Dim Rng As Range Dim LR As Long 'LR = Last Row for Understanding Dim LC As Long 'LC = Last Column for Understanding LR = Cells(Rows.Count, 1).End(xlUp).Row LC = Cells(1, Columns.Count).End(xlToLeft).Column Set Rng = Cells(1, 1).Resize(LR, LC) End Sub

Týmto sa nastaví najnovší odkaz na premennú objektu rozsahu „Rng“. Ďalej uveďte názov premennej a použite metódu „Vybrať“.

Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Posledný riadok pre pochopenie Dim LC As Long' LC = Posledný stĺpec pre pochopenie LR = Bunky (Rows.Count, 1). End (xlUp) .Row LC = Bunky (1, Columns.Count). End (xlToLeft). Sada stĺpcov Rng = bunky (1, 1). Zmena veľkosti (LR, LC) Rng. Vyberte End Sub

Teraz k svojim údajom pridám ešte niekoľko riadkov.

Pridal som tri riadky údajov navyše. Ak spustím kód teraz, mal by zvoliť najnovší rozsah údajov.

Na čo treba pamätať

  • Premenná rozsahu v programe Excel VBA je objektová premenná.
  • Kedykoľvek použijeme objektovú premennú, musíme použiť kľúčové slovo „Nastaviť“ a nastaviť odkaz na objekt na premennú.
  • Bez nastavenia referencie nemôžeme použiť objektovú premennú.

Zaujímavé články...