VBA variabelt intervall

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 ä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 kommer vi att ge en komplett guide om "Range Variable" i excel VBA.

Vad är intervallvariabelt i Excel VBA?

Liksom alla andra variabla intervall 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.

Som alla andra variabler kan vi ge vilket variabel som helst men datatypen vi tilldelar dem bör vara ett "Range". När datatypen 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 i händelse av objektvariabler.

Så när vi har deklarerat variabeln måste vi använda nyckelordet "SET" för att ställa in objektreferensen, dvs. Range-objekt i detta fall.

Ok, nu kommer vi att se några av exemplen på excel VBA Range Variables praktiskt taget.

Exempel på Range Variable i Excel VBA

Du kan ladda ner den här VBA-variabelområdet Excel-mall här - VBA-variabelområdet Excel-mall

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 punkt skulle vi se alla egenskaper och metoder 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 men istället vi kommer att deklarera variabeln och tilldela datatypen som "Range" -objekt.

Okej, låt oss ge ditt eget namn till en variabel och tilldela datatypen som "Range".

Annat än "Objektvariabler" kan vi börja använda variablerna efter deras namn men i fallet "Objektvariabler" måste vi ställa in referensen.

Till exempel, i det här fallet är vårt variabla (Rng) objekt intervall så vi måste ställa in referensen ordet “Rng” kommer att hänvisa till. För att ställa in referensen måste vi använda nyckelordet "Set".

Nu hänvisar variabeln "Rng" till cellområdet från A2 till B10, istället för att skriva "Range (" A2: B10 "))" varje gång vi bara kan skriva ordet "Rng" .

I nästa rad nämner variabelnamnet “Rng” och sätter 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 nämner det cellintervall som det bara håller fast vid dessa celler, påverkar inte varje tillägg eller radering av cellerna 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 

Till skillnad från den tidigare metoden använder vi VBA CELLS-egenskaper den här gången.

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 = Cells (1, 1) End Sub 

Jag har nämnt celler (1,1), dvs det här hänvisar till den första cellen i det aktiva arket men vi behöver referensdataområdet så använd "RESIZE" -egenskapen och nämn "senast använda rad & kolumn" 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 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 

Now this will set the latest reference to the range object variable “Rng”. Next, mention the variable name and use the “Select” method.

 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.Select End Sub 

Now I will add a few more lines to my data.

I have added three extra lines of data if I run the code now it should select the latest data range.

Things to Remember

  • The range variable in excel VBA is an object variable.
  • Whenever we use the object variable we need to use the “Set” keyword and set the object reference to the variable.
  • Without setting the reference we cannot use an object variable.