VBA-Array von Objekten

Inhaltsverzeichnis

In diesem Tutorial wird gezeigt, wie Sie Arrays von Objekten in VBA erstellen und verwenden.

In VBA sind Arrays Variablen, die mehrere Werte speichern. Sie können VBA-Objekte genauso in Arrays speichern wie alle anderen Daten.

Deklarieren des Objektarrays

In diesem Beispiel deklarieren wir ein Array von VBA-Arbeitsblättern:

1 Dim arWks(3) als Arbeitsblatt

Auffüllen eines statischen Objektarrays

Deklarieren Sie das Objektarray als statisch, und dann können Sie das Array mit den Blättern füllen, die Sie aus Ihrer Arbeitsmappe auswählen.

12345678 Unter TestObjArray()'Array als Arbeitsblatt-Array definierenDim arWks(1 bis 3) als Arbeitsblatt'3 Blatt in das Array hinzufügenset arWks(1) = Sheets(1)set arWks(2) = Sheets(2)Set arWks(3) = Sheets(3)End Sub

Auffüllen eines dynamischen Objektarrays

Sie können das Objektarray als dynamisch deklarieren und dann die Blätter in der Arbeitsmappe zählen, bevor Sie dem Objektarray die Arraygröße zuweisen.

1234567891011121314 Unter TestObjArray()'Array als Arbeitsblatt-Array definierenDim arWks() als Arbeitsblatt'zählen Sie, wie viele Arbeitsblätter in der Datei sind, und dimmen Sie das Array erneutDim n As IntegerDim i As Integer'Zähle die Blätter und minus eins, um die Grenzen für das Array festzulegenn = Application.Sheets.Count - 1ReDim arWks(n)'Füllen Sie das Arbeitsblatt-Array mit allen Blättern in der ArbeitsmappeFür i = LBound(arWks) zu UBound(arWks)Set arWks(i) = ActiveWorkbook.Sheets(i + 1)Als nächstesEnd Sub

Im obigen Beispiel deklarieren wir zuerst das Arbeitsblatt-Array. Wir zählen dann die Anzahl der Blätter in der Arbeitsmappe und weisen diesen Wert minus eins dem UBound des Arrays zu. Dies liegt daran, dass die LBound des Arrays mit 0 beginnt. Schließlich durchlaufen wir die Blätter und fügen jedes Blatt dem Array hinzu.

Verwenden des Objektarrays in VBA-Code

Sobald wir das Array Worksheet gefüllt haben, können wir VBA verwenden, um das Array zu durchlaufen.

123456789101112131415161718 Unter TestObjArray()'Array als Arbeitsblatt-Array definierenDim arWks() als Arbeitsblatt'zählen Sie, wie viele Arbeitsblätter in der Datei sind, und dimmen Sie das Array erneutDim n As IntegerDim i As Integer'Zähle die Blätter und minus eins, um die Grenzen für das Array festzulegenn = Application.Sheets.Count - 1ReDim arWks(n)'Füllen Sie das Arbeitsblatt-Array mit allen Blättern in der ArbeitsmappeFür i = LBound(arWks) zu UBound(arWks)Set arWks(i) = ActiveWorkbook.Sheets(i + 1)Als nächstes'mache etwas mit jedem Blatt im ArrayFür i = LBound(arWks) zu UBound(arWks)arWks(i).Range("A1:H1").Font.Bold = TrueAls nächstesEnd Sub

Im obigen Beispiel durchlaufen wir das Array und fetten die erste Zeile jedes Blatts im Array.

Sie werden die Entwicklung der Website helfen, die Seite mit Ihren Freunden teilen

wave wave wave wave wave