Excel VBA-Arrays: Was ist, wie werden sie verwendet und welche Arten von Arrays gibt es in VBA?

Was ist ein VBA-Array?

Ein Array ist als Speicherort definiert, der mehr als einen Wert speichern kann. Die Werte müssen alle vom gleichen Datentyp sein. Nehmen wir an, Sie möchten eine Liste Ihrer Lieblingsgetränke in einer einzigen Variablen speichern. Dazu können Sie ein VBA-Array verwenden.

Durch die Verwendung eines Arrays können Sie auf die zugehörigen Werte mit demselben Namen verweisen. Zur Unterscheidung können Sie einen Index oder einen Index verwenden. Die einzelnen Werte werden als Elemente des Excel VBA-Arrays bezeichnet. Sie sind vom Index 0 bis zum höchsten Indexwert zusammenhängend.

In diesem Tutorial wird davon ausgegangen, dass Sie Folgendes verwenden Microsoft Excel Version 2013. Das Wissen gilt weiterhin für andere Versionen von Microsoft Auch Excel.

Was sind die Vorteile von Arrays?

Im Folgenden sind einige der Vorteile der VBA-Array-Funktion aufgeführt

  1. Gruppieren Sie logisch zusammengehörige Daten – nehmen wir an, Sie möchten eine Liste von Schülern speichern. Sie können eine einzelne Array-Variable verwenden, die separate Speicherorte für Schülerkategorien hat, z. B. Kindergarten, Grundschule, Sekundarschule, weiterführende Schule usw.
  2. Arrays erleichtern das Schreiben von wartbarem Code. Für dieselben logisch zusammenhängenden Daten können Sie eine einzelne Variable definieren, anstatt mehr als eine Variable zu definieren.
  3. Bessere Leistung – Sobald ein Array definiert wurde, können Daten schneller abgerufen, sortiert und geändert werden.

Arten von Arrays in VBA

VBA unterstützt zwei Arten von Arrays, nämlich;

  • Statisch – Diese Arten von Arrays haben eine feste, vorab festgelegte Anzahl von Elementen, die gespeichert werden können. Die Größe des Datentyps eines statischen Arrays kann nicht geändert werden. Diese sind nützlich, wenn Sie mit bekannten Einheiten wie der Anzahl der Tage in einer Woche, dem Geschlecht usw. arbeiten möchten.Für Beispiel: ArrayMonth(12) als String dimmen
  • Dynamisch – Diese Arten von Arrays verfügen nicht über eine feste, vorab festgelegte Anzahl von Elementen, die gespeichert werden können. Diese sind nützlich, wenn Sie mit Entitäten arbeiten, deren Anzahl Sie nicht vorab festlegen können.Für Beispiel: ArrayMonth() als Variante dimmen

Syntax zum Deklarieren von Arrays

Statische Arrays

Die Syntax zum Deklarieren STATIC Arrays ist wie folgt:

Dim arrayName (n) as datatype

HIER,

Code Action
Dimmen Sie den Datentyp arrayName (n).
  1. Es deklariert eine Array-Variable namens arrayName mit einer Größe von n und einem Datentyp. Die Größe bezieht sich auf die Anzahl der Elemente, die das Array speichern kann.

Dynamische Arrays

Die Syntax zum Deklarieren DYNAMIC Arrays ist wie folgt:

Dim arrayName() as datatype
ReDim arrayName(4)

HIER,

Code Action
Dimmen Sie den Datentyp „arrayName()“.
  1. Es deklariert eine Array-Variable namens arrayName, ohne die Anzahl der Elemente anzugeben
ReDim arrayName(4)
  1. Es gibt die Array-Größe an, nachdem das Array definiert wurde.

Array-Dimensionen

Ein Array kann eindimensional, zweidimensional oder mehrdimensional sein.

  • Eine Dimension: In dieser Dimension verwendet das Array nur einen Index. Zum Beispiel eine Anzahl von Menschen jeden Alters.
  • Zwei Dimensionen: In dieser Dimension verwendet das Array zwei Indizes. Zum Beispiel eine Anzahl von Schülern in jeder Klasse. Es erfordert die Anzahl der Klassen und die Anzahl der Schüler in jeder Klasse
  • Mehrdimensional: In dieser Dimension verwendet das Array mehr als zwei Indizes. Zum Beispiel die Temperaturen tagsüber. (30, 40, 20).

So verwenden Sie Array in Excel VBA

Wir werden eine einfache Anwendung erstellen. Diese Anwendung füllt ein Excel-Blatt mit Daten aus einer Array-Variable. In diesem VBA-Array-Beispiel werden wir folgende Dinge tun.

  • Erstelle eine neue Microsoft Excel-Arbeitsmappe und speichern Sie sie als Excel-Makro-fähige Arbeitsmappe (*.xlsm)
  • Fügen Sie der Arbeitsmappe eine Befehlsschaltfläche hinzu
  • Legen Sie die Namens- und Beschriftungseigenschaften der Befehlsschaltfläche fest
  • Programmieren der VBA, die die Excel-Tabelle füllt

Machen Sie diese Übung Schritt für Schritt,

Schritt 1 – Erstellen Sie eine neue Arbeitsmappe

  1. Öffnen Microsoft Excel
  2. Speichern Sie die neue Arbeitsmappe als VBA Arrays.xlsm

Schritt 2 – Fügen Sie eine Befehlsschaltfläche hinzu

Hinweis: In diesem Abschnitt wird davon ausgegangen, dass Sie mit dem Prozess der Erstellung einer Schnittstelle in Excel vertraut sind. Wenn Sie nicht vertraut sind, lesen Sie das Tutorial VBA Excel-Formularsteuerung und ActiveX-Steuerung. Es zeigt Ihnen, wie Sie die Schnittstelle erstellen

  1. Fügen Sie dem Blatt eine Befehlsschaltfläche hinzu

Verwenden Sie Array in Excel VBA

  1. Legen Sie die Namenseigenschaft auf cmdLoadBeverages fest
  2. Legen Sie die caption-Eigenschaft auf „Getränke laden“ fest

Ihre GUI sollte nun wie folgt aussehen

Verwenden Sie Array in Excel VBA

Schritt 3 – Speichern Sie die Datei

  1. Klicken Sie auf die Schaltfläche Speichern unter
  2. Wählen Sie „Excel-Makro-fähige Arbeitsmappe (*.xlsm)“ aus, wie im Bild unten gezeigt

Verwenden Sie Array in Excel VBA

Schritt 4 – Schreiben Sie den Code

Wir werden nun den Code für unsere Anwendung schreiben

  1. Klicken Sie mit der rechten Maustaste auf die Schaltfläche „Getränke laden“ und wählen Sie „Code anzeigen“.
  2. Füge dem Klickereignis von cmdLoadBeverages den folgenden Code hinzu
Private Sub cmdLoadBeverages_Click()
    Dim Drinks(1 To 4) As String
     
    Drinks(1) = "Pepsi"
    Drinks(2) = "Coke"
    Drinks(3) = "Fanta"
    Drinks(4) = "Juice"
     
    Sheet1.Cells(1, 1).Value = "My Favorite Beverages"
    Sheet1.Cells(2, 1).Value = Drinks(1)
    Sheet1.Cells(3, 1).Value = Drinks(2)
    Sheet1.Cells(4, 1).Value = Drinks(3)
    Sheet1.Cells(5, 1).Value = Drinks(4)
End Sub

HIER,

Code Action
Dimmen Sie Getränke (1 bis 4) als Zeichenfolge
  • Es deklariert eine Array-Variable namens Drinks. Der erste Array-Index ist 1 und der letzte Array-Index ist 4.
Getränke(1) = „Pepsi“
  • Weist dem ersten Array-Element den Wert Pepsi zu. Der andere ähnliche Code macht dasselbe für die anderen Elemente im Array.
Sheet1.Cells(1, 1).Value = „Meine Lieblingsgetränke.“
  • Schreibt den Wert „Meine Lieblingsgetränke“ in die Zellenadresse A1. Sheet1 verweist auf das Blatt und Cells(1,1) verweist auf Zeilennummer 1 und Spalte 1 (B).
Sheet1.Cells(2, 1).Value = Drinks(1)
  • Schreibt den Wert des Array-Elements mit Index 1 in Zeile Nummer zwei von Spalte 1

Testen unserer Anwendung

Wählen Sie die Registerkarte „Entwickler“ und stellen Sie sicher, dass die Schaltfläche „Designmodus“ deaktiviert ist. Der Indikator ist, dass es einen weißen Hintergrund und keinen farbigen (grünlichen) Hintergrund hat. (Siehe Bild unten)

Testen einer Anwendung in Excel VBA

Klicken Sie auf die Schaltfläche Getränke laden

Sie erhalten folgende Ergebnisse

Testen einer Anwendung in Excel VBA

Laden Sie Excel herunter, das den obigen Code enthält

Laden Sie den obigen Excel-Code herunter

Zusammenfassung

  1. Ein Array ist eine Variable, die mehr als einen Wert speichern kann
  2. Excel VBA unterstützt statische und dynamische Arrays
  3. Arrays erleichtern das Schreiben von wartbarem Code im Vergleich zur Deklaration vieler Variablen für logisch verknüpfte Daten.