Excel VBA -muuttuja alueella
Muuttujat ovat kaikkien suurten VBA-projektien sydän ja sielu, koska muuttujat ovat sydän ja sielu, niin myös heille määräämämme tietotyyppi on 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 muutkin VBA-muuttujat, muuttuja on myös muuttuja, mutta se on “Object Variable”, jota käytämme asettamaan tietyn solualueen viite.
Kuten kaikki muut muuttujat, voimme antaa muuttujalle minkä tahansa nimen, mutta niille määrittelemämme tietotyypin tulisi olla "Range". Kun tietotyyppi on osoitettu muuttujalle, siitä tulee "Object Variable", ja toisin kuin toinen muuttuja, emme voi aloittaa muuttujan käyttöä ennen kuin asetamme objektien viitteen objektimuuttujien tapauksessa.
Joten muuttujan ilmoittamisen jälkeen meidän on käytettävä ”SET” -hakusanaa objektiviitteen, tässä tapauksessa Range-objektin, asettamiseksi.
Ok, nyt näemme joitain esimerkkejä excel VBA Range -muuttujista käytännössä.

Esimerkkejä vaihteluvälistä Excel VBA: ssa
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 IntelliSense-luettelosta ”Valitse” -menetelmä.
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, sanotaan 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.
Okei, annetaan oma nimi muuttujalle ja määritetään tietotyypiksi "Alue".

Muiden kuin "Objektimuuttujien" lisäksi voimme alkaa käyttää muuttujia niiden nimen mukaan, mutta "Objektimuuttujien" tapauksessa meidän on asetettava viite.
Esimerkiksi tässä tapauksessa muuttuja (Rng) -objektimme on alue, joten meidän on asetettava viittaus sanaan "Rng", johon viitataan. 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, 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 alueobjektien ominaisuudet ja menetelmät, kuten edellinen.
Tee muuttujasta dynaaminen
Nyt tiedämme kuinka asettaa viittaus solualueeseen, mutta kun mainitsemme solualueen, se tarttuu 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.
Viimeisimmän 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

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

Nyt tämä asettaa viimeisimmän viittauksen 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ä avainsanaa ”Set” ja asetettava objektiviittaus muuttujaan.
- Ilman viitteen asettamista emme voi käyttää objektimuuttujaa.