VBA variabel bereik

Excel VBA-variabele in bereik

Variabelen vormen het hart en de ziel van alle grote VBA-projecten, aangezien variabelen hart en ziel zijn en het soort gegevenstype dat we eraan toewijzen in dat opzicht ook een zeer belangrijke factor is. In onze vele eerdere artikelen hebben we het vaak gehad over variabelen en het belang van hun gegevenstype. Een van die variabelen en gegevenstypes is "Range Variable", in dit speciale speciale artikel zullen we een complete gids geven over "Range Variable" in Excel VBA.

Wat is bereikvariabele in Excel VBA?

Net als elke andere variabele Bereik in VBA, is de variabele ook een variabele, maar het is een "Objectvariabele" die we gebruiken om de referentie van het specifieke celbereik in te stellen.

Net als elke andere variabele kunnen we elke naam aan de variabele geven, maar het gegevenstype dat we eraan toewijzen zou een "Bereik" moeten zijn. Zodra het gegevenstype dat aan de variabele is toegewezen, een "objectvariabele" wordt en in tegenstelling tot een andere variabele, kunnen we de variabele niet gaan gebruiken voordat we de referentie van objecten hebben ingesteld in het geval van objectvariabelen.

Dus nadat we de variabele hebben gedeclareerd, moeten we het sleutelwoord “SET” gebruiken om de objectreferentie in te stellen, dwz in dit geval Range-object.

Ok, nu zullen we enkele van de voorbeelden van Excel VBA Range Variables praktisch zien.

Voorbeelden van bereikvariabele in Excel VBA

U kunt deze VBA Variable Range Excel-sjabloon hier downloaden - VBA Variable Range Excel-sjabloon

Stel bijvoorbeeld dat u het celbereik van A2 tot B10 wilt selecteren voor de onderstaande schermafbeelding.

Om dit genoemde celbereik te selecteren, al deze terwijl we het RANGE-object hebben en binnen het bereikobject, hebben we het celadres tussen dubbele aanhalingstekens vermeld.

Code:

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

Zodra het bereik van cellen is vermeld met behulp van het RANGE-object als u een punt plaatst, zien we alle eigenschappen en methoden die aan dit bereikobject zijn gekoppeld.

Code:

Sub Range_Variable_Example () Bereik ("A2: B10"). Einde Sub

Aangezien we de genoemde cellen moeten selecteren, kiest u eenvoudig de "Select" -methode uit de IntelliSense-lijst.

Code:

 Sub Range_Variable_Example () Bereik ("A2: B10"). Selecteer End Sub 

Voer de code uit en het zal de genoemde cellen selecteren.

Dit ligt niet voor de hand, maar stel je het scenario voor van het gebruik van hetzelfde bereik in het lange VBA-project, laten we zeggen honderd keer, het schrijven van dezelfde code van "Bereik (" A2: A10 ")" 100 keer zal even duren, maar in plaats daarvan we zullen de variabele declareren en het gegevenstype toewijzen als "Bereik" -object.

Oké, laten we uw eigen naam geven aan een variabele en het datatype toewijzen als "Bereik".

Anders dan "Objectvariabelen" kunnen we de variabelen gaan gebruiken op hun naam, maar in het geval van "Objectvariabelen" moeten we de referentie instellen.

In dit geval is ons variabele (Rng) -object bijvoorbeeld bereik, dus we moeten de referentie instellen waarnaar het woord "Rng" gaat verwijzen. Om de referentie in te stellen, moeten we het trefwoord "Set" gebruiken.

Nu verwijst de variabele "Rng" naar het celbereik van A2 tot B10, in plaats van "Bereik (" A2: B10 "))" elke keer te schrijven, kunnen we gewoon het woord "Rng" schrijven .

In de volgende regel noem je de variabelenaam "Rng" en zet je een punt om de magie te zien.

Zoals je hierboven kunt zien, kunnen we alle eigenschappen en methoden van bereikobject zien zoals het vorige.

Maak de variabele dynamisch

Nu weten we hoe we de verwijzing naar het celbereik moeten instellen, maar als we eenmaal het celbereik hebben vermeld, blijft het alleen aan die cellen hangen, dan heeft elke toevoeging of verwijdering van cellen geen invloed op die cellen.

Dus het vinden van het nieuwe celbereik na elke toevoeging of verwijdering van cellen maakt de variabele dynamisch van aard. Dit is mogelijk door de laatst gebruikte rij en kolom te zoeken.

Om de laatst gebruikte rij en kolom te vinden, moeten we nog twee variabelen definiëren.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Laatste rij voor het begrijpen van Dim LC As Long' LC = Laatste kolom voor het begrijpen van End Sub 

De onderstaande code zal de laatst gebruikte rij en kolom vinden voordat we de verwijzing naar een bereikobjectvariabele instellen.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Laatste rij voor het begrijpen van Dim LC As Long' LC = Laatste kolom voor het begrijpen LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column End Sub 

Open nu de trefwoordverklaring "Set".

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 = End Sub 

In tegenstelling tot de vorige methode gebruiken we deze keer VBA CELLS-eigenschappen.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Laatste rij voor het begrijpen van Dim LC As Long' LC = Laatste kolom voor het begrijpen LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) End Sub 

Ik heb Cells (1,1) genoemd, dwz dit verwijst naar de eerste cel in het actieve blad, maar we hebben de verwijzing naar het gegevensbereik nodig, dus gebruik de eigenschap "RESIZE" en vermeld de variabelen "laatst gebruikte rij en kolom".

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 

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.