Exceli VBA muutuja vahemikus
Muutujad on kõigi suurte VBA-projektide süda ja hing, kuna muutujad on süda ja hing, siis on ka neile omistatud andmetüüp selles osas väga oluline tegur. Oma paljudes varasemates artiklites oleme palju kordi arutanud muutujate ja nende andmetüübi olulisuse üle. Üks selline muutuja ja andmetüüp on selles spetsiaalses artiklis "Range Variable". Anname täieliku juhendi teemal „Vahemiku muutuja” Exceli VBA-s.
Mis on vahemiku muutuja Exceli VBA-s?
Nagu iga teine muutuja VBA muutuja, on muutuja ka muutuja, kuid see on "Object Variable", mida kasutame konkreetse lahtrivahemiku viite määramiseks.
Nagu iga teine muutuja, võime ka sellele muutujale nime anda, kuid neile omistatud andmetüüp peaks olema vahemik. Kui andmetüüp on muutujale määratud, saab sellest „Object Variable“ ja erinevalt teisest muutujast ei saa me muutujat enne objektimuutujate puhul objektide viite seadistamist alustada.
Niisiis, pärast muutuja deklareerimist peame kasutama märksõna "SET", et määrata objektiviide, st antud juhul vahemikuobjekt.
Ok, nüüd näeme mõningaid näiteid Exceli VBA vahemiku muutujatest.

Vahemiku muutuja näited Exceli VBA-s
Oletame näiteks, et soovite alloleva ekraanipildi jaoks valida lahtrivahemiku A2 kuni B10.

Selle mainitud lahtrivahemiku valimiseks oleme kõik need märkinud, kui meil on objekt RANGE, ja vahemikuobjekti sees mainisime lahtri aadressi jutumärkides.
Kood:
Alamvahemik_Muutuja_näide () Vahemik ("A2: B10") Lõpp-alam

Kui lahtrivahemik on RANGE-objekti abil mainitud, näeksime punkti lisamisel kõiki selle vahemikuobjektiga seotud omadusi ja meetodeid.
Kood:
Alamvahemik_Muutuja_näide () Vahemik ("A2: B10"). Lõpeta alam

Kuna peame nimetatud lahtrid valima lihtsaks, valige IntelliSense'i loendist meetod „Vali“.
Kood:
Alamvahemik_Muutuja_näide () Vahemik ("A2: B10"). Valige Lõpeta alam

Käivitage kood ja see valib mainitud lahtrid.

See on ilmne, kas pole, aga kujutage ette stsenaariumi, kus pikas VBA projektis kasutatakse sama vahemikku, ütleme nii, et sada korda, sama koodi vahemiku („A2: A10”) 100-kordne kirjutamine võtab aega, kuid selle asemel deklareerime muutuja ja määrame andmetüübi objektiks "Range".
Ok, anname muutujale oma nime ja määrame andmetüübiks „Range”.

Muud kui „Objekti muutujad“, võime hakata muutujaid kasutama nende nimede järgi, kuid „Objekti muutujate“ puhul peame määrama viite.
Näiteks on sel juhul meie muutuja (Rng) objekt vahemik, seega peame määrama viite sõnale „Rng”, millele viitama hakatakse. Viite määramiseks peame kasutama märksõna „Määra”.

Nüüd osutab muutuja “Rng” lahtrivahemikule A2 kuni B10. Selle asemel, et iga kord kirjutada „Range („ A2: B10 ”))” , võime lihtsalt kirjutada sõna „Rng”.
Järgmises reas mainige muutuja nime “Rng” ja pange võlu nägemiseks täpp.

Nagu ülal näete, näeme kõiki vahemikuobjektide omadusi ja meetodeid nagu eelmine.
Muutke muutuja dünaamiliseks
Nüüd teame, kuidas määrata viide lahtrivahemikule, kuid kui mainime lahtrivahemikku, jääb see ainult nende lahtrite juurde. Lahtrite lisamine või kustutamine ei mõjuta neid rakke.
Niisiis, uue lahtrivahemiku leidmine pärast rakkude lisamist või kustutamist muudab muutuja olemuse dünaamiliseks. See on võimalik, kui leiate viimati kasutatud rea ja veeru.
Viimati kasutatud rea ja veeru leidmiseks peame määratlema veel kaks muutujat.
Kood:
Alamvahemiku_muutuja_näide () Dim Rng as Range Vahemik Dim LR As Long 'LR = viimane rida Dim LC As Long'i mõistmiseks' LC = viimane veerg lõpp-Sub mõistmiseks

Nüüd leiate koodi alt viimati kasutatud rea ja veeru, enne kui määrame viite vahemikuobjekti muutujale.
Kood:
Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Viimane rida Dim LC As Long'i mõistmiseks' LC = Viimane veerg LR = Cells mõistmiseks (Rows.Count, 1) .End (xlUp) .Rea LC = Cells (1, Columns.Count). End (xlToLeft). Veeru lõpu alam

Nüüd avage märksõna lause „Määra”.
Kood:
Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Viimane rida Dim LC As Long'i mõistmiseks' LC = Viimane veerg LR = Cells mõistmiseks (Rows.Count, 1) .End (xlUp) .Rea LC = Cells (1, Columns.Count) .End (xlToLeft). Veergude komplekt 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

Nüüd seab see viimase viite vahemikuobjekti muutujale “Rng”. Seejärel mainige muutuja nime ja kasutage meetodit „Vali“.
Sub Range_Variable_Example () Dim Rng as Range Dim LR As Long 'LR = Viimane rida Dim LC nii pikaks mõistmiseks' LC = Viimane veerg LR = Cells mõistmiseks (Rows.Count, 1) .End (xlUp) .Rea LC = Cells (1, Columns.Count) .End (xlToLeft). Veergude komplekt Rng = lahtrid (1, 1). Suuruse (LR, LC) Rng. Valige End Sub
Nüüd lisan oma andmetele veel paar rida.

Olen lisanud kolm täiendavat andmerida. Kui käivitan koodi kohe, peaks see valima viimase andmevahemiku.

Asjad, mida meeles pidada
- Exceli VBA vahemiku muutuja on objekti muutuja.
- Alati, kui kasutame objekti muutujat, peame kasutama märksõna „Set” ja muutujale objekti viite.
- Ilma viite seadistamiseta ei saa me objekti muutujat kasutada.