VBA-vaihteleva alue Esimerkkejä vaihtelevasta alueesta Excel VBA: ssa

Excel VBA -muuttuja alueella

Muuttujat ovat kaikkien suurten VBA-projektien sydän ja sielu, koska muuttujat ovat sydäntä ja sielua, niin myös heille määräämämme tietotyyppi on myös erittäin tärkeä tekijä tältä osin. Monissa aikaisemmissa artikkeleissamme olemme keskustelleet paljon muuttujista ja niiden tietotyyppien tärkeydestä. Yksi tällainen muuttuja ja tietotyyppi on "Range Variable", tässä erityisessä artikkelissa annamme täydellisen oppaan "Range Variable" -toiminnosta excel VBA: ssa.

Mikä on vaihteluväli Excel VBA: ssa?

Kuten kaikki muut muuttujat VBA: ssa, muuttuja on myös muuttuja, mutta se on "Object Variable", jota käytämme asettamaan tietyn solualueen viite.

Kuten kaikki muuttujat, voimme antaa muuttujalle minkä tahansa nimen, mutta niille määrittelemämme tietotyypin tulisi olla "Range". Kun muuttujalle määritetystä tietotyypistä tulee "Object Variable" ja toisin kuin toinen muuttuja, emme voi aloittaa muuttujan käyttöä ennen kuin asetamme objektien viitteen objektimuuttujien tapauksessa.

Joten, kun olemme ilmoittaneet muuttujan, meidän on käytettävä "SET" -hakusanaa objektiviitteen eli Range-objektin asettamiseksi tässä tapauksessa.

Ok, nyt näemme joitain esimerkkejä excel VBA Range -muuttujista käytännössä.

Esimerkkejä vaihteluvälistä Excel VBA: ssa

Voit ladata tämän VBA Variable Range Excel -mallin täältä - VBA Variable Range Excel -malli

Oletetaan esimerkiksi, että haluat valita solualueen A2 - B10 alla olevalle kuvakaappaukselle.

Tämän mainitun solualueen valitsemiseksi kaikki nämä, kun meillä on RANGE-objekti ja alueobjektin sisällä, olemme maininneet solun osoitteen lainausmerkeissä.

Koodi:

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

Kun solualue on mainittu RANGE-objektilla, jos laitat pisteen, näemme kaikki tähän alueobjektiin liittyvät ominaisuudet ja menetelmät.

Koodi:

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

Koska meidän on valittava mainitut solut yksinkertaisesti, valitse ”Valitse” -menetelmä IntelliSense-luettelosta.

Koodi:

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

Suorita koodi ja se valitsee mainitut solut.

Tämä on selvää, eikö vain, mutta kuvittele skenaario, jossa samaa aluetta käytetään pitkässä VBA-projektissa, sanotaanpa sata kertaa, saman "Range (" A2: A10 ")" koodin kirjoittaminen 100 kertaa vie jonkin aikaa, mutta sen sijaan ilmoitamme muuttujan ja määritämme tietotyypin "Range" -objektiksi.

Ok, annetaan oma nimi muuttujalle ja määritetään tietotyypiksi "Range".

Muut kuin "Object Variables", voimme alkaa käyttää muuttujia niiden nimen mukaan, mutta "Object Variables", meidän on asetettava viite.

Esimerkiksi tässä tapauksessa muuttujaobjektimme (Rng) on ​​alue, joten meidän on asetettava viite, johon sana ”Rng” viittaa. Viitteen asettamiseksi meidän on käytettävä "Aseta" avainsanaa.

Muuttuja "Rng" viittaa nyt solualueeseen A2: sta B10: een sen sijaan, että kirjoittaisimme "Range (" A2: B10 "))" joka kerta, kun voimme yksinkertaisesti kirjoittaa sanan "Rng" .

Mainitse seuraavalla rivillä muuttujan nimi “Rng” ja laita piste nähdäksesi taikuuden.

Kuten yllä voit nähdä, voimme nähdä kaikki alueobjektin ominaisuudet ja menetelmät, kuten edellinen.

Tee muuttujasta dynaaminen

Nyt tiedämme kuinka asettaa viittaus solualueeseen, mutta kun mainitsemme solualueen, jonka se kiinnittää vain näihin soluihin, solujen lisääminen tai poistaminen ei vaikuta näihin soluihin.

Joten uuden solualueen löytäminen solujen lisäämisen tai poistamisen jälkeen tekee muuttujasta dynaamisen. Tämä on mahdollista etsimällä viimeksi käytetty rivi ja sarake.

Viimeisen käytetyn rivin ja sarakkeen löytämiseksi meidän on määritettävä kaksi muuta muuttujaa.

Koodi:

 Alialue_muuttuja_esimerkki () Dim Rng as Range Dim LR As Long 'LR = Viimeinen rivi Dim LC: n ymmärtämisen kannalta niin pitkä' LC = Viimeinen sarake loppuosan ymmärtämiseksi 

Nyt koodin alapuolelta löytyy viimeksi käytetty rivi ja sarake, ennen kuin asetamme viitteen alueobjektimuuttujaan.

Koodi:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Viimeinen rivi Dim LC: n ymmärtämisen kannalta niin pitkä' LC = Viimeinen sarake LR: n ymmärtämiseksi = Solut (Rivit.Määrä, 1) .End (xlUp) .Rivi LC = Solut (1, Columns.Count) .End (xlToLeft) .Sarakkeen loppuosa 

Avaa nyt avainsanalause "Aseta".

Koodi:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Viimeinen rivi Dim LC: n ymmärtämisen kannalta niin pitkä' LC = Viimeinen sarake LR: n ymmärtämiseksi = Solut (Rivit.Määrä, 1) .End (xlUp) .Rivi LC = Solut (1, Columns.Count) .End (xlToLeft) .Column Set Rng = End Sub 

Toisin kuin edellinen menetelmä, käytämme tällä kertaa VBA CELLS -ominaisuuksia.

Koodi:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Viimeinen rivi Dim LC: n ymmärtämisen kannalta niin pitkä' LC = Viimeinen sarake LR: n ymmärtämiseksi = Solut (Rivit.Määrä, 1) .End (xlUp) .Rivi LC = Solut (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Solut (1, 1) End Sub 

Olen maininnut solut (1,1), ts. Tämä viittaa aktiivisen taulukon ensimmäiseen soluun, mutta tarvitsemme tietoalue-viitteen, joten käytä ominaisuutta "KOKO" ja mainitse "viimeksi käytetyt rivi ja sarake" -muuttujat.

Koodi:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Viimeinen rivi Dim LC: n ymmärtämisen kannalta niin pitkä' LC = Viimeinen sarake LR: n ymmärtämiseksi = Solut (Rivit.Määrä, 1) .End (xlUp) .Rivi LC = Solut (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Solut (1, 1) .Resize (LR, LC) End Sub 

Nyt tämä asettaa viimeisimmän viitteen alueobjektimuuttujaan "Rng". Mainitse seuraavaksi muuttujan nimi ja käytä ”Valitse” -menetelmää.

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Viimeinen rivi Dim LC: n ymmärtämisen kannalta niin pitkä' LC = Viimeinen sarake LR: n ymmärtämiseksi = Solut (Rivit.Määrä, 1) .End (xlUp) .Rivi LC = Solut (1, Columns.Count) .End (xlToLeft) .Sarakejoukko Rng = Solut (1, 1) .Resize (LR, LC) Rng.Valitse End Sub 

Lisään nyt muutama rivi tietoihini.

Olen lisännyt kolme ylimääräistä tietoriviä, jos suoritan koodin nyt, sen pitäisi valita uusin tietoalue.

Muistettavaa

  • Excel-VBA: n aluemuuttuja on objektimuuttuja.
  • Aina kun käytämme objektimuuttujaa, meidän on käytettävä "Set" -avainsanaa ja asetettava objektiviittaus muuttujaan.
  • Ilman viitteen asettamista emme voi käyttää objektimuuttujaa.

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