Excel VBA variabel inom räckvidd
Variabler är hjärtat och själen i alla stora VBA-projekt eftersom variabler är hjärta och själ, då är den typ av datatyp vi tilldelar dem också en mycket viktig faktor i det avseendet. I våra många tidigare artiklar har vi diskuterat många gånger om variabler och deras datatypvikt. En sådan variabel och datatyp är "Range Variable" i denna speciella dedikerade artikel. Vi kommer att ge en komplett guide om ”Range Variable” i excel VBA.
Vad är Range Variable i Excel VBA?
Liksom alla andra variabler i VBA är variabeln också en variabel, men det är en ”Objektvariabel” som vi använder för att ställa in referensen för det specifika cellområdet.
Liksom alla andra variabler kan vi ge vilket variabel som helst namn, men datatypen vi tilldelar dem bör vara ett "Range". När datatypen har tilldelats variabeln blir den en ”Objektvariabel”, och till skillnad från en annan variabel kan vi inte börja använda variabeln innan vi ställer in referensen för objekt vid objektvariabler.
Så, efter att vi har deklarerat variabeln, måste vi använda nyckelordet "SET" för att ställa in objektreferensen, dvs Range-objekt i det här fallet.
Ok, nu kommer vi att se några av exemplen på excel VBA Range Variables praktiskt taget.

Exempel på Range Variable i Excel VBA
Antag till exempel att du vill välja cellintervallet från A2 till B10 för skärmdumpen nedan.

För att välja detta nämnda cellområde, alla dessa medan vi har RANGE-objekt, och inuti intervallobjektet har vi nämnt celladressen i dubbla citat.
Koda:
Sub Range_Variable_Example () Range ("A2: B10") End Sub

När cellområdet har nämnts med RANGE-objekt, om du sätter en punkt, skulle vi se alla egenskaper och metoder som är associerade med detta intervallobjekt.
Koda:
Sub Range_Variable_Example () Range ("A2: B10"). Avsluta sub

Eftersom vi behöver välja de nämnda cellerna enkelt väljer du "Välj" -metoden från IntelliSense-listan.
Koda:
Sub Range_Variable_Example () Range ("A2: B10"). Välj End Sub

Kör koden och den markerar de nämnda cellerna.

Detta är uppenbart, är det inte, men tänk dig att scenariot med att använda samma intervall i det långa VBA-projektet, låt oss säga hundra gånger, att skriva samma kod som "Range (" A2: A10 ")" 100 gånger tar lite tid, istället förklarar vi variabeln och tilldelar datatypen som "Range" -objekt.
Okej, låt oss ge ditt eget namn till en variabel och tilldela datatypen som "Range".

Förutom "Objektvariabler" kan vi börja använda variablerna efter deras namn, men när det gäller "Objektvariabler" måste vi ställa in referensen.
I det här fallet är till exempel vårt variabla (Rng) objekt ett intervall, så vi måste ställa in referensen till ordet "Rng" kommer att referera till. För att ställa in referensen måste vi använda nyckelordet "Set".

Nu hänvisar variabeln "Rng" till cellintervallet från A2 till B10. I stället för att skriva "Range (" A2: B10 ")" varje gång kan vi helt enkelt skriva ordet "Rng."
I nästa rad, nämn variabelnamnet “Rng” och sätt en punkt för att se magin.

Som du kan se ovan kan vi se alla egenskaper och metoder för intervallobjekt som den tidigare.
Gör variabeln dynamisk
Nu vet vi hur man ställer in referensen till cellintervallet, men när vi väl har nämnt cellintervallet, håller det sig bara vid cellerna. Något tillägg eller radering av celler påverkar inte dessa celler.
Så att hitta det nya cellområdet efter varje tillägg eller radering av celler gör variabeln dynamisk till sin natur. Detta är möjligt genom att hitta den senast använda raden och kolumnen.
För att hitta den senast använda raden och kolumnen måste vi definiera ytterligare två variabler.
Koda:
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

Nu nedan kommer koden att hitta den senast använda raden och kolumnen innan vi ställer in referensen till en variabel för objektobjekt.
Koda:
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

Öppna nu nyckelordet "Set".
Koda:
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

Nu kommer detta att ställa in den senaste referensen till intervallobjektvariabeln "Rng." Därefter nämner du variabelnamnet och använder metoden “Välj”.
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) Rng. Välj End Sub
Nu ska jag lägga till några fler rader till mina uppgifter.

Jag har lagt till tre extra datarader. Om jag kör koden nu ska den välja det senaste dataområdet.

Saker att komma ihåg
- Områdesvariabeln i Excel VBA är en objektvariabel.
- När vi använder objektvariabeln måste vi använda nyckelordet "Set" och ställa in objektreferensen till variabeln.
- Utan att ange referens kan vi inte använda en objektvariabel.