VBA Range

VBA Range
VBA Range

VBA Range

Du möchtest mit der VBA Range und somit mit einen ganzen Bereich in Excel arbeiten?

Lerne in diesem Beitrag, wie Du mit der VBA Range Funktion ganze Bereiche erfassen und verarbeiten kannst.

Vielleicht interessieren Dich zu einem anderen Zeitpunkt noch folgende Beiträge: VBA InStr, Array, Array Length.

Was ist eine VBA Range

Eine Range in VBA, bzw. in Microsoft Excel, ist – übersetzt gesehen – eine Reichweite von mehreren Zellen einer Tabelle.

Wie Du Dir sicher vorstellen kannst, können wir so diverse Zeilen und Spalten abbilden und letztendlich durchlaufen.

Damit können wir unter anderem Summierungen, oder andere eigene Arbeitsschritte anwenden.

Die Qual der Wahl

Naja ganz so schlimm ist es nicht 😂, jedoch gibt es 2 tolle Auswahlmöglichkeiten für die Ranges.

Die erste Möglichkeit auf die VBA Ranges zuzugreifen ist es, den User ganz einfach wie bekannt seine eigene Auswahl treffen zu lassen und dann im Code auf die Auswahl zuzugreifen.

Bei der zweiten Möglichkeit handelt es sich mehr oder weniger um eine manuelle Methode, wo wir – wie aus Excel bekannt – die Ranges mit ich nenne es mal „Selektorenbestimmen.

Manuelle Auswahl des Nutzers – VBA Range

Stell Dir vor, der Nutzer deiner Anwendung markiert die Zellen z. B. wie folgt:

VBA Range Excel Beispiel Auswahl
VBA Range Excel Beispiel Auswahl

Er hat also praktisch die „Koordinaten“ A1, A2 und A3 in dieser Tabelle, bzw. diesem Tabellenblatt markiert.

Anders formuliert, könnte man diese „Range“ auch in „Excel-Sprache“ ausdrücken, was dann als „A1:A3“ bezeichnet werden würde.

Diese Range können wir im Grunde genauso in unserem VBA Skript verwenden, um die z. B. die Daten aus den respektiven Zellen abzurufen.

Auswahl via Code – VBA Range

Doch bevor wir mit dem tatsächlichen Abrufen von Werten, bzw. Iterieren von Zellen beginnen, werfen wir nochmal einen Blick auf die Auswahl der Range via Code.

Wie oben schon angesprochen verwenden wir dafür einen Ausdruck, Welchen ich als Selektor bezeichne und übergeben Diesen der Range-Funktion aus Excel.

Dim area
area = Range("A1:A3")

Im Code deklarieren wir dazu erstmal eine Variable namens „area“ und weisen Ihr anschließend den Rückgabewert der RangeFunktion zu.

Danach haben wir endlich die Möglichkeit, die einzelnen Zellen, Welche hier durch die Range widergespiegelt werden zu durchlaufen.

Zellen der Range durchlaufen

Um durch die einzelnen Zellen der Range zu iterieren nutzen wir im folgenden Beispiel die „For Each„-Schleife:

For Each cell in area
    ' do something
Next

Nun können wir innerhalb der einzelnen Schleifen-Durchläufe auf die jeweilige Zelle zugreifen.

Wir haben dadurch die Möglichkeit einerseits die hinter den Zellen steckenden Werte abgreifen und setzen, sowie die Formeln der Zellen verändern.

Werte der Zellen abrufen und verändern

Hier zeige ich Dir, wie Du einzelne Werte aus den Zellen abrufen und setzen kannst:

Werte abrufen

For Each cell in area
    Dim value = cell.Value
    ' so something with the value
Next

Werte setzen

For Each cell in area
    cell.Value = "The new Value!"
Next

Mit Formeln arbeiten

Im nächsten Abschnitt kümmern wir uns um das Setzen und Abrufen der Formeln.

Formel setzen

Wir haben die Möglichkeit die Formeln einer Range direkt zu setzen:

Range("A1:A3").Formula = "=Rand()"

Oder wie im obigen Beispiel mit Hilfe einer Schleife:

For Each cell in area
    cell.Formula = "=Rand()"
Next

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.