Die VBA-Sprache (Visual Basic for Applications) wird zum Automatisieren von Aufgaben in Microsoft Excel verwendet. Eine der nützlichen Funktionen von VBA ist die Möglichkeit, Arrays zu erstellen, mit denen große Datenmengen gespeichert und verarbeitet werden können.
Es ist oft notwendig, ein Array basierend auf einer Werteliste zu erstellen, z. B. aus einer Spalte in Excel. Dazu können Sie Schleifen und bedingte VBA-Anweisungen verwenden.
Im Folgenden finden Sie Beispielcode, mit dem Sie ein Array basierend auf einer Spalte in Excel erstellen können:
Sub CreateArrayFromList()
Dim myList() As Variant
Dim i As Integer
' Bestimmen Sie die Größe des Arrays
ReDim myList(1 To Range("A1", Range("A1").End(xlDown)).Rows.Count)
' Füllen Sie das Array mit Werten aus Spalte A aus
For i = 1 To UBound(myList)
myList(i) = Range("A" & i)
Next i
' Ausgabe des Ergebnisses
For i = 1 To UBound(myList)
Debug.Print myList(i)
Next i
End Sub
Dieser Code erstellt ein myList() -Array, dessen Größe der Anzahl der Zeilen in Spalte A entspricht. Es füllt dann das Array mit Werten aus Spalte A in der Schleife, wobei die Funktion Range() und die Variable i verwendet werden.
Verstehen von Arrays in Excel VBA
Arrays in der Programmiersprache stellen VBA eine praktische Datenstruktur dar, mit der Sie viele Werte speichern und verarbeiten können. In Excel VBA können Arrays eindimensional, zweidimensional und mehrdimensional sein.
Eindimensionale Arrays - Es ist einfach eine Liste von Werten, die unter demselben Variablennamen gespeichert werden. Verwenden Sie die folgende Syntax, um ein eindimensionales Array in Excel VBA zu erstellen:
Dim arrayName(index) As DataType
- arrayName - name der Array-Variablen;
- index - der Index des Arrayelements gibt die Anzahl der Elemente an, die im Array gespeichert werden können;
- DataType - ein Datentyp, der in einem Array gespeichert werden kann (z. B. Integer, Long, String usw.).
Beispiel für das Erstellen eines eindimensionalen Arrays:
Dim myArray(5) As Integer
In diesem Beispiel wird ein Array mit dem Namen "myArray" erstellt, das 6 Integer-Elemente enthalten kann. Die Elementindizes liegen in diesem Fall zwischen 0 und 5.
Zweidimensionale Arrays Dies sind Tabellen, die aus Zeilen und Spalten mit Elementen bestehen, von denen jede ihren eigenen eindeutigen Index hat. Ein zweidimensionales Array kann in Excel als Grid dargestellt werden. Verwenden Sie die folgende Syntax, um ein zweidimensionales Array in Excel VBA zu erstellen:
Dim arrayName(rowIndex, columnIndex) As DataType
- arrayName - name der Array-Variablen;
- rowIndex - array-String-Index;
- columnIndex - index der Array-Spalte;
- DataType - ein Datentyp, der in einem Array gespeichert werden kann.
Beispiel für das Erstellen eines zweidimensionalen Arrays:
Dim myArray(3, 2) As String
In diesem Beispiel wird ein Array mit dem Namen "myArray" erstellt, das 4 Zeilen und 3 Spalten enthalten kann, wobei jedes Element vom Datentyp String ist.
Mehrdimensionale Arrays in Excel werden VBA ähnlich wie zweidimensionale Arrays beschrieben, nur mit einer großen Anzahl von Indizes.
Nachdem Sie nun verstanden haben, wie Sie ein Array in Excel VBA erstellen, können Sie diese Datenstruktur verwenden, um große Mengen an Informationen in Ihren VBA-Makros und -Prozeduren zu speichern und zu verarbeiten. Arrays bieten eine bequeme Möglichkeit, Daten zu organisieren und schnell darauf zuzugreifen.
Schritt 1: Erstellen einer Liste
- Bestimmen Sie, wie Ihre Liste dargestellt werden soll. Sie können nur Text, Zellenwerte oder sogar Zellbereiche verwenden.
- Geben Sie an, wie viele Elemente in der Liste enthalten sein sollen. Dies hilft Ihnen, die Dimension eines Arrays zu bestimmen.
- Schreiben Sie die Listenwerte in einen Zielbereich von Zellen oder ein Array in VBA.
| № | Nachname | Name | Alter |
|---|---|---|---|
| 1 | Ivanov | Iwan | 25 |
| 2 | Petrov | Peter | 30 |
| 3 | Sidorow | Sidor | 35 |
In diesem Beispiel wird die Liste als Tabelle dargestellt, wobei jede Zeile einem einzelnen Listenelement entspricht. Insgesamt enthält die Liste 3 Elemente.
Schritt 2: Deklarieren und Initialisieren des Arrays
Das Schlüsselwort Dim wird verwendet, um ein Array in VBA Excel zu deklarieren, gefolgt von dem Namen des Arrays und seiner Dimension. Die Dimension eines Arrays bestimmt die Anzahl der Elemente, die in einem Array gespeichert werden können. Geben Sie dann den Datentyp der Array-Elemente an, z. B. Integer, String, Double usw.
Um ein Array zu initialisieren, müssen Sie die Werte jedes Arrayelements festlegen. In diesem Fall werden die Werte aus der Liste übernommen. Sie können dazu eine For- oder Do-While-Schleife verwenden, indem Sie jedes Element der Liste durchlaufen und dem entsprechenden Element des Arrays einen Wert zuweisen.
Ein Beispiel für das Deklarieren und Initialisieren eines Arrays aus einer Liste könnte folgendermaßen aussehen:
Dim arr() As StringDim i As Integer' Определение размерности массиваReDim arr(1 To Listbox1.ListCount)' Инициализация массива значениями из спискаFor i = 1 To Listbox1.ListCountarr(i) = Listbox1.List(i - 1)Next i
In diesem Beispiel wird ein Array mit dem Datentyp String und einer Dimension deklariert, die der Anzahl der Elemente in der Liste entspricht. Als nächstes durchläuft die For-Schleife alle Elemente der Liste und weist ihre Werte den entsprechenden Elementen des Arrays zu.
Nach diesem Schritt enthält das Array alle Werte aus der Liste und kann zum Ausführen verschiedener Vorgänge und zur Verarbeitung von Daten in der Excel-VBA-Sprache verwendet werden.
Schritt 3: Füllen Sie das Array mit den Daten aus der Liste
Nachdem wir ein leeres Array erstellt haben, besteht der nächste Schritt darin, das Array mit den Daten aus der Liste zu füllen. Dazu müssen wir eine Schleife verwenden, die jede Zelle in der Liste durchläuft und die Werte in den entsprechenden Elementen des Arrays speichert.
Im Folgenden finden Sie einen Beispielcode, der diese Aufgabe ausführt:
Sub FillArrayFromList()
Dim myList As Range
Dim myArray() As Variant
' variablen einen Wert zuweisen
Set myList = Range("A1:A10") ' ersetzen Sie "A1:A10" durch den Bereich Ihrer Liste
myArray = myList.Value ' werte aus einer Liste in ein Array speichern
' array mit Daten aus der Liste füllen
For i = LBound(myArray, 1) To UBound(myArray, 1)
' hier können wir beliebige Aktionen mit den Daten aus der Liste ausführen, z. B. sie in ein Meldungsfeld bringen
MsgBox myArray(i, 1)
End Sub
In diesem Beispiel definieren wir zunächst Variablen, einschließlich der Variablen myList, die auf unsere Liste verweist, und der Variablen myArray, die zum Speichern von Werten aus der Liste als Array verwendet wird. Dann weisen wir der Variablen myList einen Bereich unserer Liste zu und speichern dann die Werte aus der Liste in ein Array, indem wir der Variablen myArray die Werte von myList zuweisen.Value.
Nachdem wir die Werte aus der Liste in ein Array gespeichert haben, führen wir eine Schleife durch, die jede Zeile des Arrays durchläuft und die erforderlichen Aktionen ausführt. In diesem Beispiel geben wir einfach die Werte jeder Zelle im Meldungsfeld mit der MsgBox myArray(i, 1) aus, aber Sie können andere Aktionen mit diesen Daten ausführen.
Nachdem Sie mit den Daten aus der Liste fertig sind, können Sie zusätzliche Array-Operationen wie Sortieren, Filtern oder Konvertieren von Daten durchführen, um das gewünschte Ergebnis zu erhalten.
Jetzt haben Sie ein gefülltes Array von Daten aus einer Liste, die Sie für die weitere Verarbeitung in Ihrem Code verwenden können!
Schritt 4: Verwenden eines Arrays in VBA-Code
Wenn Sie ein Datenarray aus einer Liste in Excel erstellt haben, können Sie dieses Array in Ihrem VBA-Code verwenden. Auf diese Weise können Sie verschiedene Datenoperationen wie Lesen, Schreiben und Bearbeiten durchführen, ohne dass Sie mit der Excel-Datei selbst interagieren müssen.
Um ein Array in VBA-Code zu verwenden, müssen Sie zuerst eine Variable deklarieren, die ein Array von Daten enthält. Sie können das Schlüsselwort "Dim" verwenden, um eine Variable zu deklarieren. Der folgende Code deklariert beispielsweise eine Variable "myArray" vom Typ Array von ganzen Zahlen:
Dim myArray() As Integer
Nachdem Sie eine Variable deklariert haben, können Sie ihr Werte aus einem Datenarray zuweisen. Wenn Ihr Datenarray beispielsweise Zahlen zwischen 1 und 5 enthält, können Sie den folgenden Code verwenden, um der Variablen "myArray" Werte zuzuweisen:
myArray = Array(1, 2, 3, 4, 5)
Jetzt können Sie die Variable "myArray" verwenden, um verschiedene Datenoperationen durchzuführen. Sie können beispielsweise die Array-Werte mithilfe des folgenden Codes in ein Meldungsfeld einfügen:
For i = LBound(myArray) To UBound(myArray)MsgBox myArray(i)Next i
Dieser Code gibt jedes Element des Arrays "myArray" in einem separaten Meldungsfeld aus. Sie können diesen Code ändern, um die gewünschten Datenoperationen durchzuführen.
Die Verwendung eines Arrays in VBA-Code ermöglicht es Ihnen, mit großen Datenmengen effizienter zu arbeiten und bestimmte Datenoperationen zu vereinfachen. Stellen Sie sicher, dass Sie die Werte der Array-Variablen korrekt deklarieren und zuweisen, um Fehler in Ihrem Code zu vermeiden.
Im nächsten Schritt werden wir untersuchen, welche Vorgänge mit Datenarrays in VBA für Excel ausgeführt werden können.