VBA kintamas diapazonas | „Excel VBA“ kintamo diapazono pavyzdžiai

„Excel VBA“ kintamas diapazonas

Kintamieji yra visų didelių VBA projektų širdis ir siela, nes kintamieji yra širdis ir siela, tada jiems priskiriamas duomenų tipas taip pat yra labai svarbus veiksnys. Savo daugelyje ankstesnių straipsnių mes daug kartų aptarėme apie kintamuosius ir jų duomenų tipo svarbą. Vienas iš tokių kintamųjų ir duomenų tipų yra „Range Variable“, šiame specialiame specialiame straipsnyje pateiksime išsamų „Range Variable“ vadovą „Excel VBA“.

Kas yra diapazono kintamasis „Excel VBA“?

Kaip ir kiekvienas kitas VBA kintamasis diapazonas, kintamasis taip pat yra kintamasis, tačiau tai yra „Object Variable“, kurį naudojame nustatydami konkretaus langelių diapazono nuorodą.

Kaip ir bet kuris kitas kintamasis, kintamajam galime suteikti bet kokį pavadinimą, tačiau jam priskiriamas duomenų tipas turėtų būti „Range“. Kai kintamajam priskiriamas duomenų tipas tampa „Object Variable“ ir, skirtingai nuo kito kintamojo, negalime pradėti naudoti kintamojo prieš nustatydami objektų nuorodą objekto kintamųjų atveju.

Taigi, paskelbę kintamąjį, turime naudoti raktinį žodį „SET“, kad nustatytume objekto nuorodą, ty Range Range objektą.

Gerai, dabar praktiškai pamatysime keletą „Excel“ VBA diapazono kintamųjų pavyzdžių.

„Excel VBA“ diapazono kintamojo pavyzdžiai

Šį VBA kintamo diapazono „Excel“ šabloną galite atsisiųsti čia - „VBA kintamo diapazono„ Excel “šablonas

Pvz., Tarkime, kad norite pasirinkti toliau nurodyto ekrano paveikslėlio langelių diapazoną nuo A2 iki B10.

Norėdami pasirinkti šį minimą langelių diapazoną, kol turime objektą RANGE ir diapazono objekto viduje, langelio adresą paminėjome dvigubose kabutėse.

Kodas:

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

Kai langelių diapazonas bus paminėtas naudojant objektą RANGE, jei įdėsite tašką, pamatytume visas su šio diapazono objektu susijusias savybes ir metodus.

Kodas:

Sub diapazonas_Kintamas_pavyzdys () Diapazonas ("A2: B10"). Pabaigos sub

Kadangi mums reikia pasirinkti minėtas langelius, „IntelliSense“ sąraše pasirinkite metodą „Pasirinkti“.

Kodas:

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

Paleiskite kodą ir jis pasirinks minėtas langelius.

Tai akivaizdu, ar ne, bet įsivaizduokite scenarijų, kaip naudoti tą patį diapazoną ilgame VBA projekte, tarkime, šimtą kartų, 100 kartų užrašant tą patį kodą „Range („ A2: A10 “)“, reikės šiek tiek laiko, bet vietoj to deklaruosime kintamąjį ir duomenų tipą priskirsime „Range“ objektui.

Gerai, suteiksime savo vardą kintamajam ir duomenų tipą priskirkime kaip „Range“.

Išskyrus „Object Variables“, mes galime pradėti naudoti kintamuosius pagal jų pavadinimą, tačiau „Object Variables“ atveju turime nustatyti nuorodą.

Pavyzdžiui, šiuo atveju mūsų kintamojo (Rng) objektas yra diapazonas, todėl turime nustatyti nuorodą, į kurią kalbėsime žodžiu „Rng“. Norėdami nustatyti nuorodą, turime naudoti raktinį žodį „Nustatyti“.

Dabar kintamasis „Rng“ nurodo langelių diapazoną nuo A2 iki B10, užuot rašę „Range („ A2: B10 “))“ kiekvieną kartą, mes tiesiog galime parašyti žodį „Rng“ .

Kitoje eilutėje paminėkite kintamojo pavadinimą „Rng“ ir įdėkite tašką, kad pamatytumėte magiją.

Kaip matote aukščiau, galime pamatyti visas diapazono objekto savybes ir metodus, panašius į ankstesnį.

Padarykite kintamąjį dinaminį

Dabar mes žinome, kaip nustatyti nuorodą į ląstelių diapazoną, bet paminėjus ląstelių diapazoną, kurį jis prilimpa tik prie tų ląstelių, bet koks ląstelių pridėjimas ar ištrynimas neturės įtakos toms ląstelėms.

Taigi, suradus naują langelių diapazoną po bet kokio ląstelių pridėjimo ar pašalinimo, kintamasis tampa dinamiškas. Tai įmanoma surandant paskutinį kartą naudotą eilutę ir stulpelį.

Norėdami rasti paskutinį kartą naudotą eilutę ir stulpelį, turime apibrėžti dar du kintamuosius.

Kodas:

 Sub Range_Variable_Example () Dim Rng as Range Dim LR As Long 'LR = Paskutinė eilutė suprantant Dim LC As Long' LC = Paskutinis stulpelis norint suprasti pabaigos sub 

Dabar žemiau kodas ras paskutinį kartą naudotą eilutę ir stulpelį prieš nustatydami nuorodą į diapazono objekto kintamąjį.

Kodas:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Paskutinė eilutė suprantant Dim LC As Long' LC = Paskutinis stulpelis suprantant LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count). End (xlToLeft). Stulpelio pabaigos antrinis 

Dabar atidarykite raktinio žodžio teiginį „Nustatyti“.

Kodas:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Paskutinė eilutė suprantant Dim LC As Long' LC = Paskutinis stulpelis suprantant LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft). Stulpelių rinkinys Rng = End Sub 

Skirtingai nuo ankstesnio metodo, šį kartą naudojame VBA CELLS savybes.

Kodas:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Paskutinė eilutė suprantant Dim LC As Long' LC = Paskutinis stulpelis suprantant LR = Cells (Rows.Count, 1). End (xlUp). Eilutė LC = Cells (1, Columns.Count) .End (xlToLeft). Stulpelių rinkinys Rng = Cells (1, 1) End Sub 

Aš paminėjau langelius (1,1), ty tai reiškia pirmąjį aktyvaus lapo langelį, tačiau mums reikia duomenų diapazono nuorodos, todėl naudokite savybę „RESIZE“ ir paminėkite „paskutinį kartą naudotas eilutės ir stulpelio“ kintamuosius.

Kodas:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Paskutinė eilutė suprantant Dim LC As Long' LC = Paskutinis stulpelis suprantant LR = Cells (Rows.Count, 1). End (xlUp). Row LC = Cells (1, Columns.Count) .End (xlToLeft). Stulpelių rinkinys Rng = Cells (1, 1). Resize (LR, LC) End Sub 

Dabar tai nustatys naujausią nuorodą į diapazono objekto kintamąjį „Rng“. Tada paminėkite kintamojo pavadinimą ir naudokite metodą „Pasirinkti“.

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Paskutinė eilutė suprantant Dim LC As Long' LC = Paskutinis stulpelis suprantant LR = Cells (Rows.Count, 1). End (xlUp). Row LC = Cells (1, Columns.Count) .End (xlToLeft). Stulpelių rinkinys Rng = Cells (1, 1). Resize (LR, LC) Rng. Pasirinkite End Sub 

Dabar prie savo duomenų pridėsiu dar keletą eilučių.

Pridėjau tris papildomas duomenų eilutes, jei paleidžiu kodą dabar, jis turėtų pasirinkti naujausią duomenų diapazoną.

Ką reikia atsiminti

  • „Excel VBA“ diapazono kintamasis yra objekto kintamasis.
  • Kai mes naudojame objekto kintamąjį, turime naudoti raktinį žodį „Set“ ir nustatyti objekto nuorodą į kintamąjį.
  • Nenustačius nuorodos, mes negalime naudoti objekto kintamojo.