Abrufen der Array-Länge in VBA
- Holen Sie sich die Differenz des höchsten und niedrigsten Index, um die Array-Länge in VBA zu erhalten
-
Verwenden Sie die Arbeitsblattfunktion
COUNTA
, um die Array-Länge in VBA abzurufen
Arrays sind beliebte Werkzeuge in der Computerprogrammierung, mit denen Sie Informationen speichern können, die für die spätere Verwendung oder während der Codeausführung benötigt werden. In fast jeder Computerprogrammiersprache sind Arrays in ihrer Bibliothek enthalten, da die Notwendigkeit, Informationen zu speichern und abzurufen, manchmal unvermeidlich ist.
In VBA bedeutet das Ermitteln der Länge eines Arrays, die Anzahl eines Elements zu zählen, das innerhalb des Arrays vorhanden ist. Dazu müssen Sie die niedrigsten und höchsten Elemente des Index kennen. Dann wäre der Unterschied zwischen dem höchsten und dem niedrigsten die Array-Länge.
Sie könnten auch die Arbeitsblattfunktion COUNTA
verwenden, um dieselben Informationen zu erhalten.
Dieses Tutorial verwendet die höchste/niedrigste Indexdifferenz und die Arbeitsblattfunktion COUNTA
, um die Länge eines VBA-Arrays zu ermitteln.
Holen Sie sich die Differenz des höchsten und niedrigsten Index, um die Array-Länge in VBA zu erhalten
Die Logik dieser Methode ist, dass wir die Länge des Arrays erhalten können, indem wir den niedrigsten Index vom höchsten Index subtrahieren und dann 1 addieren. Wir addieren 1, da es erforderlich ist, den niedrigsten Index in die Länge des Arrays aufzunehmen.
Der folgende Codeblock demonstriert das Abrufen der Arraylänge eines Arrays eines Arrays mit fester Länge. Beachten Sie, dass es nicht immer richtig ist, nur den höchsten Index zu erhalten, um die Arraylänge zu erhalten, da es Fälle gibt, in denen der niedrigste Index nicht gleich 0 ist und mit unterschiedlichen Indizes beginnen könnte.
Sub ArrayLengthDemo()
Dim stringArr(5 To 9) As String
stringArr(5) = "Glen"
stringArr(6) = "Yumi"
stringArr(7) = "Myla"
stringArr(8) = "Katrina"
stringArr(9) = "Jose"
Debug.Print "The array length of stringArr is " UBound(stringArr) - LBound(stringArr) + 1
End Sub
ArrayLengthDemo
Ausgabe:
The array length of stringArr is 5
Der folgende Codeblock demonstriert das Abrufen der Arraylänge eines Arrays eines dynamischen Arrays.
Sub ArrayLengthDemo()
Dim StringArr As Variant
StringArr = Array("Glen", "Yumi", "Katrina", "Myla", "Jose")
Debug.Print "The array length of StringArr is "; UBound(StringArr) - LBound(StringArr) + 1
End Sub
ArrayLengthDemo
Ausgabe:
The array length of stringArr is 5
Die Implementierung von Funktionen zum Abrufen der Array-Länge im folgenden Code wird demonstriert. Es ist hilfreich, wenn die Notwendigkeit, die Array-Länge zu erhalten, wiederholt wird.
Außerdem verfügt der folgende Code über zusätzliche Logik, um zu erkennen, ob das zu messende Array null ist.
Public Function GetArrayLength(arr As Variant) As Integer
If IsEmpty(arr) Then
GetArrayLength = 0
Else
GetArrayLength = UBound(arr) - LBound(arr) + 1
End If
End Function
Sub GetArrayLengthDemo1()
Dim stringArr(5 To 9) As String
stringArr(5) = "Glen"
stringArr(6) = "Yumi"
stringArr(7) = "Myla"
stringArr(8) = "Katrina"
stringArr(9) = "Jose"
Debug.Print "The array length is " & GetArrayLength(stringArr)
End Sub
Sub GetArrayLengthDemo2()
Dim NullArr As Variant
Debug.Print "The array length is " & GetArrayLength(NullArr)
End Sub
GetArrayLengthDemo1
Ausgabe:
The array length is 5
GetArrayLengthDemo2
Ausgabe:
The array length is 0
Verwenden Sie die Arbeitsblattfunktion COUNTA
, um die Array-Länge in VBA abzurufen
Ein Array ist eine Sammlung von Elementen, die ein- oder mehrdimensional strukturiert sind. Sie können die Arbeitsblattfunktion COUNTA
verwenden, um diese Elemente in einer einzigen Codezeile zu zählen.
Der folgende Codeblock zeigt, wie Sie die Array-Länge mit der Arbeitsblattfunktion COUNTA
erhalten.
Syntax:
WorksheetFunction.CountA([ arrayName ])
Parameter:
[arrayName] |
das zu messende Array |
Die Arbeitsblattfunktion COUNTA
ist auf nur 30 Elemente beschränkt. Wenn es sich um ein großes Array handelt, wird die erste Methode empfohlen.
Sub ArrayLengthDemo()
Dim stringArr(5 To 9) As String
stringArr(5) = "Glen"
stringArr(6) = "Yumi"
stringArr(7) = "Myla"
stringArr(8) = "Katrina"
stringArr(9) = "Jose"
Debug.Print "The array length of stringArr is " & WorksheetFunction.CountA(stringArr)
End Sub
ArrayLengthDemo
Ausgabe:
The array length of stringArr is 5
Sub ArrayLengthDemo()
Dim StringArr As Variant
StringArr = Array("Glen", "Yumi", "Katrina", "Myla", "Jose")
Debug.Print "The array length of StringArr is " & WorksheetFunction.CountA(stringArr)
End Sub
ArrayLengthDemo
Ausgabe:
The array length of stringArr is 5