VBA-Variablenbereich

Excel VBA-Variable im Bereich

Variablen sind das Herz und die Seele eines jeden großen VBA-Projekts, da Variablen Herz und Seele sind. Die Art des Datentyps, den wir ihnen zuweisen, ist in dieser Hinsicht ebenfalls ein sehr wichtiger Faktor. In unseren vielen früheren Artikeln haben wir viele Male über Variablen und ihre Bedeutung für den Datentyp gesprochen. Eine solche Variable und ein solcher Datentyp ist "Bereichsvariable". In diesem speziellen Artikel geben wir einen vollständigen Leitfaden zu "Bereichsvariable" in Excel VBA.

Was ist eine Bereichsvariable in Excel VBA?

Wie jeder andere Variablenbereich in VBA ist auch die Variable eine Variable, aber es ist eine „Objektvariable“, mit der wir die Referenz des spezifischen Zellbereichs festlegen.

Wie bei jeder anderen Variablen können wir der Variablen einen beliebigen Namen geben, aber der Datentyp, den wir ihnen zuweisen, sollte ein "Bereich" sein. Sobald der der Variablen zugewiesene Datentyp zu einer „Objektvariablen“ wird und im Gegensatz zu einer anderen Variablen, können wir die Variable nicht mehr verwenden, bevor wir bei Objektvariablen die Referenz von Objekten festlegen.

Nachdem wir die Variable deklariert haben, müssen wir das Schlüsselwort "SET" verwenden , um die Objektreferenz festzulegen, in diesem Fall das Range-Objekt.

Ok, jetzt werden wir einige Beispiele für Excel-VBA-Bereichsvariablen praktisch sehen.

Beispiele für Bereichsvariablen in Excel VBA

Sie können diese VBA-Excel-Vorlage mit variablem Bereich hier herunterladen - VBA-Excel-Vorlage mit variablem Bereich

Angenommen, Sie möchten den Zellenbereich von A2 bis B10 für das folgende Screenshot-Bild auswählen.

Um diesen erwähnten Zellenbereich auszuwählen, während wir das RANGE-Objekt und innerhalb des Bereichsobjekts haben, haben wir die Zellenadresse in doppelten Anführungszeichen erwähnt.

Code:

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

Sobald der Zellbereich mit dem RANGE-Objekt erwähnt wird, werden beim Setzen eines Punkts alle Eigenschaften und Methoden angezeigt, die diesem Bereichsobjekt zugeordnet sind.

Code:

Sub Range_Variable_Example () Range ("A2: B10"). End Sub

Da wir die genannten Zellen auswählen müssen, wählen Sie einfach die Methode „Select“ aus der IntelliSense-Liste.

Code:

 Sub Range_Variable_Example () Range ("A2: B10"). Wählen Sie End Sub 

Führen Sie den Code aus und es werden die genannten Zellen ausgewählt.

Dies ist offensichtlich, nicht wahr, aber stellen Sie sich das Szenario vor, dass im langen VBA-Projekt derselbe Bereich hundertmal verwendet wird. Das 100-malige Schreiben des gleichen Codes für „Range („ A2: A10 “)“ dauert einige Zeit, aber stattdessen Wir werden die Variable deklarieren und den Datentyp als "Range" -Objekt zuweisen.

Ok, geben wir einer Variablen Ihren eigenen Namen und weisen den Datentyp als "Bereich" zu.

Anders als bei "Objektvariablen" können wir die Variablen anhand ihres Namens verwenden. Bei "Objektvariablen" müssen wir jedoch die Referenz festlegen.

In diesem Fall ist unser variables (Rng) Objekt beispielsweise der Bereich, sodass wir die Referenz festlegen müssen, auf die sich das Wort „Rng“ beziehen wird. Um die Referenz festzulegen, müssen Sie das Schlüsselwort "Set" verwenden.

Jetzt bezieht sich die Variable "Rng" auf den Zellenbereich von A2 bis B10, anstatt jedes Mal "Bereich (" A2: B10 ")) zu schreiben, wenn wir einfach das Wort " Rng " schreiben können .

Erwähnen Sie in der nächsten Zeile den Variablennamen „Rng“ und setzen Sie einen Punkt, um die Magie zu sehen.

Wie Sie oben sehen können, können wir alle Eigenschaften und Methoden des Bereichsobjekts wie das vorherige sehen.

Machen Sie die Variable dynamisch

Jetzt wissen wir, wie man den Verweis auf den Zellbereich einstellt, aber wenn wir den Zellbereich erwähnen, der nur an diesen Zellen haftet, hat jede Hinzufügung oder Löschung von Zellen keine Auswirkungen auf diese Zellen.

Das Finden des neuen Zellbereichs nach dem Hinzufügen oder Löschen von Zellen macht die Variable also dynamischer Natur. Dies ist möglich, indem die zuletzt verwendete Zeile und Spalte gefunden wird.

Um die zuletzt verwendete Zeile und Spalte zu finden, müssen zwei weitere Variablen definiert werden.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Letzte Zeile zum Verständnis von Dim LC As Long' LC = Letzte Spalte zum Verständnis von End Sub 

Der folgende Code findet nun die zuletzt verwendete Zeile und Spalte, bevor wir den Verweis auf eine Bereichsobjektvariable festlegen.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Letzte Zeile zum Verständnis von Dim LC As Long' LC = Letzte Spalte zum Verständnis von LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column End Sub 

Öffnen Sie nun die Schlüsselwortanweisung "Set".

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Letzte Zeile zum Verständnis von Dim LC As Long' LC = Letzte Spalte zum Verständnis von LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = End Sub 

Im Gegensatz zur vorherigen Methode verwenden wir diesmal VBA CELLS-Eigenschaften.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Letzte Zeile zum Verständnis von Dim LC As Long' LC = Letzte Spalte zum Verständnis von LR = Cells (Rows.Count, 1) .End (xlUp) .Row LC = Cells (1, Columns.Count) .End (xlToLeft) .Column Set Rng = Cells (1, 1) End Sub 

Ich habe Zellen (1,1) erwähnt, dh dies bezieht sich auf die erste Zelle im aktiven Blatt, aber wir benötigen die Datenbereichsreferenz. Verwenden Sie daher die Eigenschaft „RESIZE“ und erwähnen Sie die Variablen „zuletzt verwendete Zeile und Spalte“.

Code:

 Sub Range_Variable_Example () Dim Rng As Range Dim LR As Long 'LR = Letzte Zeile zum Verständnis von Dim LC As Long' LC = Letzte Spalte zum Verständnis von 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.