Wie verwende ich eine zelle als variable in vba?
Um einen Bereich oder eine einzelne Zelle als Variable zu verwenden, müssen Sie diese Variable zunächst mit dem Datentyp „Bereich“ deklarieren. Sobald Sie dies getan haben, müssen Sie mithilfe des Bereichsobjekts einen Bereich von einer Zelle bis zu dieser Variablen angeben. Dadurch erhalten Sie auch Zugriff auf alle Eigenschaften und Methoden, die Sie mit einem Bereich verwenden können.
- Verwenden Sie das Schlüsselwort „Dim“ und geben Sie den Variablennamen ein.
- Deklarieren Sie das Schlüsselwort als Range .
- Geben Sie den Variablennamen ein.
- Geben Sie den Bereich an, den Sie der Variablen zuweisen möchten.
Auswahl auf Bereichsvariable setzen
Sie können den ausgewählten Bereich auch für eine Variable verwenden und diese Variable dann verwenden, um auf Eigenschaften und Methoden zuzugreifen. Betrachten Sie den folgenden Code.
Sub vba_range_variable() Dim rng As Range Set rng = Selection Selection.Clear End Sub
Sie müssen jedoch eines beachten: Wenn Sie ein anderes Objekt als einen Bereich auswählen , zeigt Ihnen VBA einen Fehler an.
Es handelt sich aber auch um eine dynamische Methode, bei der Sie den Bereich nicht immer wieder ändern müssen.
Kopieren Sie einen Bereich mithilfe einer Variablen
Sobald Sie eine Variable als Bereich deklariert haben , können Sie diesen Bereich auch unter Verwendung dieses Variablennamens kopieren. Angenommen, Sie haben den Bereich A1:A10 als RNG-Variable deklariert (Beispiel oben), dann können Sie ihn mit dem folgenden Code kopieren.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") rng.Copy End Sub
Verwenden der Bereichsvariablen in einer Funktion
Sie können eine Bereichsvariable auch verwenden, um beim Schreiben eines Makros auf einen Bereich in einer Funktion zu verweisen. Betrachten Sie den folgenden Code.
Sub vba_range_variable() Dim iNames As Variant Dim rng As Range Set rng = Range("A1:A10") Range("B1") = WorksheetFunction.Max(rng) End Sub
Es nimmt Werte im Bereich A1:A10 an und da Sie die Variable „rng“ verwenden müssen, haben wir für die Ausgabe die Variable mit dem Maximalwert verwendet.
Verwandte Themen: So verwenden Sie WorksheetFunction in VBA
Zählen Sie die Anzahl der Zeilen und Spalten
Wie ich bereits sagte, erhalten Sie, sobald Sie eine Variable als Bereich angeben, auch alle Eigenschaften und Zugriffsmethoden. Stellen Sie sich vor, Sie möchten Zeilen und Spalten zählen. Hier ist der Code, der verwendet werden könnte.
Sub vba_range_variable() Dim rng As Range Set rng = Range("A1:A10") MsgBox "This range has " & _ rng.Rows.Count & " row(s) and " & _ rng.Columns.Count & " coulmn(s)." End Sub
Wenn Sie diesen Code ausführen, wird eine Meldung mit der Anzahl der Zeilen und Spalten in dem Bereich angezeigt , den Sie in der Variablen angegeben haben.
Definition eines Arbeitsblatts mit Bereich
In allen obigen Beispielen haben wir den Bereich verwendet, ohne das Arbeitsblatt zu erwähnen. Wenn Sie diesen Code ausführen, verweist VBA daher immer auf den Bereich im aktiven Blatt. Wenn Sie jedoch auf ein bestimmtes Arbeitsblatt verweisen möchten, müssen Sie das Arbeitsblattobjekt mit dem Bereich verwenden.
Dim rng As Range Set rng = Worksheets("Sheet1").Range("A1:A10")