Abrufen der Array-Länge in VBA

Glen Alfaro 30 Januar 2023
  1. Holen Sie sich die Differenz des höchsten und niedrigsten Index, um die Array-Länge in VBA zu erhalten
  2. Verwenden Sie die Arbeitsblattfunktion COUNTA, um die Array-Länge in VBA abzurufen
Abrufen der Array-Länge in VBA

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 

Verwandter Artikel - VBA Array