Deklarieren und initialisieren das String-Array in VBA
- Deklarieren und initialisieren Sie das dynamische String-Array
- Deklarieren und initialisieren Sie ein statisches String-Array
Bei jeder Codeausführung in jeder Programmiersprache ist es manchmal unvermeidlich, Informationen zu speichern. Das Gute ist, dass VBA beim Speichern von Daten mehrere Optionen zulässt, und eine davon sind die Arrays.
In VBA werden Arrays basierend auf ihrer Länge und Datentypflexibilität kategorisiert.
- Dynamische Arrays – Arrays, die in Länge und Datentyp variabel sind
- Statische Arrays – Arrays mit fester Länge und festem Datentyp.
Darüber hinaus können Arrays in VBA auch anhand ihrer Dimensionen kategorisiert werden.
- Eindimensionales Array – Arrays mit nur einem einzeiligen Array.
- Mehrdimensionales Array – Arrays mit mehreren einzeiligen Arrays.
Deklarieren und initialisieren Sie das dynamische String-Array
Die folgenden Codeblöcke zeigen, wie ein String-Array erstellt und initialisiert wird.
Methode 1 - Als Datentyp Variant
deklarieren
Deklarieren Sie ein dynamisches Array, indem Sie eine Variable in einem Variant-Datentyp erstellen. Dann wird das Array durch eine Collection (Array()
) initialisiert.
Sub DynamicArrayDemo()
Dim stringArray As Variant
stringArray = Array("Lion", "Tiger", "Cheetah", "Monkey", "Elephant", "Zebra")
Debug.Print stringArray(3)
End Sub
DynamicArrayDemo
-Ausgabe:
Monkey
Methode 2 - Als String deklarieren, dann die Funktion Split()
verwenden
Deklarieren Sie ein String-Array mit dem Namen stringArray
, ohne die Grenzen explizit zu deklarieren.
Sub DynamicArrayDemo()
Dim stringArray() As String
Dim str As String
str = "Lion,Tiger,Cheetah,Monkey,Elephant,Zebra"
stringArray = Split("Lion,Tiger,Cheetah,Monkey,Elephant,Zebra", ",")
Debug.Print stringArray(2)
End Sub
DynamicArrayDemo
-Ausgabe:
Cheetah
Deklarieren und initialisieren Sie ein statisches String-Array
Die folgenden Codeblöcke demonstrieren verschiedene Methoden zum Deklarieren und Initialisieren eines statischen Zeichenkettenarrays.
Methode 1 - Deklarieren von LowerBound
und UpperBound
:
Deklarieren Sie ein statisches String-Array, indem Sie sein erstes und letztes Element explizit deklarieren.
Syntax:
Dim stringArray([LowerBound] To [UpperBound]) As String
Parameter:
[LowerBound] |
Die Schlüsselzahl, auf die das erste Element des Arrays verwiesen wird. |
[UpperBound] |
Die Schlüsselzahl, auf die das letzte Element des Arrays verwiesen wird. |
Das folgende Beispiel deklariert ein String-Array namens stringArray
mit sechs Elementen von Element 0 bis 5.
Sub StaticArrayDemo()
Dim stringArray(0 To 5) As String
stringArray(0) = "Lion"
stringArray(1) = "Tiger"
stringArray(2) = "Cheetah"
stringArray(3) = "Monkey"
stringArray(4) = "Elephant"
stringArray(5) = "Zebra"
Debug.Print stringArray(4)
End Sub
StaticArrayDemo
Ausgabe:
Elephant
Methode 2 - Explizite Änderung der unteren Grenze
Deklarieren Sie ein String-Array durch einen generischen Lower bound
-Wert.
Option Base 1
Sub StaticArrayDemo()
Dim stringArray(6) As String
stringArray(1) = "Lion"
stringArray(2) = "Tiger"
stringArray(3) = "Cheetah"
stringArray(4) = "Monkey"
stringArray(5) = "Elephant"
stringArray(6) = "Zebra"
Debug.Print stringArray(1)
End Sub
StaticArrayDemo
Ausgabe:
Lion
Methode 3 – Deklarieren und initialisieren mit einem mehrdimensionalen Array
In VBA können Sie Arrays mit bis zu 60 Dimensionen deklarieren.
Syntax:
Dim stingArray( [LowerBound1] to [UpperBound1],[LowerBound2] to [UpperBound2], . . . ) as String
Parameter:
[LowerBound1] |
Die Schlüssel-Ganzzahl ist das erste Array-Element, auf das in der ersten Array-Dimension verwiesen wird. |
[UpperBound1] |
Die Schlüssel-Ganzzahl ist das letzte Array-Element, auf das in der ersten Array-Dimension verwiesen wird. |
[LowerBound2] |
Die Schlüssel-Ganzzahl ist das erste Array-Element, auf das in der zweiten Array-Dimension verwiesen wird. |
[UpperBound2] |
Die Schlüssel-Ganzzahl ist das letzte Array-Element, auf das in der zweiten Array-Dimension verwiesen wird. |
Im folgenden Beispiel wurde ein mehrdimensionales Array deklariert, dessen erste Dimension 1 bis 5 ist; dann ist der andere 1 bis 5.
Sub MultiStaticArrayDemo()
Dim stringArray(1 To 5, 1 To 5) As String
Dim i, j As Integer
For i = 1 To 5
For j = 1 To 5
stringArray(i, j) = "The value of (" & i & "," & j & ") is " & i * j
Debug.Print stringArray(i, j)
Next j
Next i
End Sub
MultiStaticArrayDemo
Ausgabe:
The value of (1,1) is 1
The value of (1,2) is 2
The value of (1,3) is 3
The value of (1,4) is 4
The value of (1,5) is 5
The value of (2,1) is 2
The value of (2,2) is 4
The value of (2,3) is 6
The value of (2,4) is 8
The value of (2,5) is 10
The value of (3,1) is 3
The value of (3,2) is 6
The value of (3,3) is 9
The value of (3,4) is 12
The value of (3,5) is 15
The value of (4,1) is 4
The value of (4,2) is 8
The value of (4,3) is 12
The value of (4,4) is 16
The value of (4,5) is 20
The value of (5,1) is 5
The value of (5,2) is 10
The value of (5,3) is 15
The value of (5,4) is 20
The value of (5,5) is 25