Zum Hauptinhalt springen

Wie kann ich die Länge eines zweidimensionalen Arrays in VBA Excel herausfinden?

Bei der VBA-Programmierung von Excel besteht oft die Notwendigkeit, mit zweidimensionalen Arrays zu arbeiten. Eine wichtige Frage bei der Arbeit mit solchen Arrays besteht darin, ihre Länge zu kennen. Die Länge eines Arrays bestimmt die Anzahl der darin enthaltenen Elemente und ist eine wichtige Information zum Erstellen von Schleifen und Datenverarbeitungsalgorithmen.

Sie können die UBound-Funktion verwenden, um die Länge eines eindimensionalen Arrays in VBA Excel zu bestimmen. Bei zweidimensionalen Arrays sind die Dinge jedoch etwas komplizierter. Ein zweidimensionales Array hat zwei Dimensionen - Zeilen und Spalten. Um die Länge eines zweidimensionalen Arrays zu bestimmen, müssen Sie die Anzahl der Zeilen und Spalten kennen.

Sie können die UBound-Funktion zusammen mit Index 1 verwenden, um die Anzahl der Zeilen in einem zweidimensionalen Array in VBA Excel zu bestimmen. Dadurch wird die Funktion UBound nur für die erste Dimension des Arrays aufgerufen, dh für Strings. Ebenso können Sie die UBound-Funktion mit Index 2 verwenden, um die Anzahl der Spalten in einem zweidimensionalen Array zu bestimmen, indem Sie sie für die zweite Dimension aufrufen, dh für die Spalten.

Wie kann ich die Dimension eines zweidimensionalen Arrays in VBA Excel ermitteln?

Dim arr(1 To 3, 1 To 4) As IntegerDim rowsCount As IntegerDim columnsCount As IntegerrowsCount = UBound(arr, 1)columnsCount = UBound(arr, 2)MsgBox "Размерность массива: " & rowsCount & "x" & columnsCount

In diesem Beispiel wird ein 2-dimensionales arr-Array mit der Größe 3x4 erstellt. Die UBound-Funktion bestimmt dann die Anzahl der Zeilen und Spalten des Arrays. Die resultierenden Werte werden in den Variablen rowsCount und columnsCount gespeichert. Am Ende wird eine Meldung mit der Dimension des Arrays angezeigt.

Vorbereiten des Arrays

Um ein zweidimensionales Array in VBA Excel zu erstellen, müssen Sie das Schlüsselwort verwenden Dim und geben Sie die Dimensionen jeder Dimension in Klammern an. Zum Beispiel:

Dim myArray(10, 5) As Variant

Hier erstellen wir ein Array mit 10 Zeilen und 5 Spalten. Stichwort As Variant gibt an, dass jedes Element im Array einen beliebigen Datentyp haben kann.

Nachdem Sie ein Array erstellt haben, können Sie es mit Werten füllen. Dies kann mit Schleifen erfolgen For oder For Each abhängig von der erforderlichen Fülllogik. Zum Beispiel:

For i = 1 To 10For j = 1 To 5myArray(i, j) = i + jNext jNext i

Hier verwenden wir zwei verschachtelte Schleifen For um jedes Element des Arrays zu durchlaufen und ihm einen Wert zuzuweisen, der der Summe der Zeilen- und Spaltenindizes entspricht.

Nachdem Sie ein Array aufgefüllt haben, können Sie seine Länge mithilfe der integrierten Funktionen abrufen UBound und LBound. Funktion UBound gibt den oberen Rand des Arrays zurück, und die Funktion LBound – Unterkante. Zum Beispiel:

rows = UBound(myArray, 1)columns = UBound(myArray, 2)

Hier erhalten wir die Anzahl der Zeilen und Spalten im Array und speichern sie in Variablen rows und columns entsprechend.

Daher können Sie nach der Vorbereitung eines zweidimensionalen Arrays in VBA Excel damit beginnen und seine Länge für eine einfache Datenverarbeitung verwenden.

Abrufen der Dimension eines Arrays

Es gibt mehrere Möglichkeiten, um die Dimension eines zweidimensionalen Arrays in VBA Excel zu erhalten.

  1. Verwenden von LBound und UBound: Die LBound-Funktion gibt den Index der unteren Grenze der angegebenen Array-Dimension zurück, und die UBound-Funktion gibt den Index der oberen Grenze der angegebenen Array-Dimension zurück. Beispielcode:
Dim myArray(1 To 3, 1 To 5) As VariantDim numRows As IntegerDim numColumns As IntegernumRows = UBound(myArray, 1) - LBound(myArray, 1) + 1numColumns = UBound(myArray, 2) - LBound(myArray, 2) + 1MsgBox "Размерность массива: " & numRows & " строк, " & numColumns & " столбцов"

In diesem Beispiel wird ein 2-dimensionales myArray mit der Größe 3x5 erstellt. Mit den Funktionen LBound und UBound werden dann die unteren und oberen Grenzen für jede Dimension des Arrays definiert und die Dimension des Arrays berechnet.

  1. Verwenden von Array-Eigenschaften: Excel VBA verfügt über Array-Eigenschaften, mit denen Sie Array-Informationen abrufen können, ohne die Funktionen LBound und UBound verwenden zu müssen. Beispielcode:
Dim myArray(1 To 3, 1 To 5) As VariantDim numRows As IntegerDim numColumns As IntegernumRows = UBound(myArray, 1)numColumns = UBound(myArray, 2)MsgBox "Размерность массива: " & numRows & " строк, " & numColumns & " столбцов"

In diesem Beispiel wird ein 2-dimensionales myArray mit der Größe 3x5 erstellt. Mit den Array-Eigenschaften werden Informationen über die oberen Grenzen jeder Dimension des Arrays abgerufen und die Dimension des Arrays berechnet.

Beide Methoden ermöglichen es Ihnen, die Dimension eines zweidimensionalen Arrays in VBA Excel zu erhalten. Die Wahl eines bestimmten Verfahrens hängt von den Vorlieben des Programmierers und den Besonderheiten der jeweiligen Aufgabe ab.

Definieren der Zeilenanzahl

In VBA Excel können Sie die Anzahl der Zeilen in einem zweidimensionalen Array mit der UBound-Funktion bestimmen. Diese Funktion gibt den oberen Rand einer angegebenen Arraydimension zurück.

Um die Anzahl der Zeilen zu bestimmen, übergeben Sie ein Array an die UBound-Funktion und geben eine Dimension von 1 an. Die Nummerierung von Dimensionen in Arrays in Excel VBA beginnt bei Null. Daher hat die erste Dimension (Spalten) einen Index von 0 und die zweite Dimension (Zeilen) einen Index von 1.

Beispiel für die Verwendung von UBound, um die Anzahl der Zeilen in einem zweidimensionalen Array zu bestimmen:

Dim arr(3, 2) As VariantDim numRows As Integer'Заполнение массива даннымиnumRows = UBound(arr, 1) + 1MsgBox "Количество строк: " & numRows

In diesem Beispiel wird ein 4 mal 3-dimensionales arr-Array (4 Zeilen, 3 Spalten) erstellt. Die Funktion UBound(arr, 1) gibt den Index der oberen Grenze der ersten Dimension des Arrays zurück, dh die Anzahl der Zeilen minus 1. Durch Hinzufügen von 1 erhalten Sie die tatsächliche Anzahl der Zeilen im Array. Das Ergebnis wird der Variablen numRows zugewiesen, die dann in einer Nachricht angezeigt wird.

Definieren der Anzahl der Spalten

Verwenden Sie die Funktion UBound, um die Anzahl der Spalten in einem zweidimensionalen Array in VBA Excel zu bestimmen. Diese Funktion gibt den Index des letzten Arrayelements in der angegebenen Dimension zurück. Die Anzahl der Spalten in einem Array kann mit der UBound-Funktion bestimmt werden, wobei der zweite Parameter 2 ist, was die Dimension der Spalten in einem zweidimensionalen Array angibt.

Dim array(1 To 3, 1 To 4) As VariantDim numColumns As LongnumColumns = UBound(array, 2)MsgBox "Количество столбцов: " & numColumns

In diesem Beispiel wird ein zweidimensionales Array mit den Abmessungen 3x4 erstellt. Die UBound-Funktion bestimmt dann die Anzahl der Spalten im Array und zeigt das Ergebnis im Meldungsfeld an.

Beachten Sie, dass die UBound-Funktion im Beispiel mit zwei Parametern verwendet wird. Der erste Parameter verweist auf das Array selbst und der zweite Parameter verweist auf die Dimension, für die der Index des letzten Elements bestimmt werden soll. In diesem Fall ist der zweite Parameter 2, was der Spaltendimension entspricht.