web-dev-qa-db-fra.com

Obtenir la longueur du tableau?

J'essaie d'obtenir la longueur d'un tableau, mais l'erreur "Object Requeried" persiste.

Est-ce que je fais quelque chose de mal?

Dim columns As Variant
columns = Array( _
"A", "ID", _
"D", "Name")
Debug.Print columns.Length ' Error: Object required
29
lisovaccaro

Une fonction

Public Function ArrayLen(arr As Variant) As Integer
    ArrayLen = UBound(arr) - LBound(arr) + 1
End Function

Utilisation

Dim arr(1 To 3) As String  ' Array starting at 1 instead of 0: nightmare fuel
Debug.Print ArrayLen(arr)  ' Prints 3.  Everything's going to be ok.
13
MarredCheese

Si la variante est vide, une erreur est générée. Le code à l'épreuve des balles est le suivant:

Public Function GetLength(a As Variant) As Integer
   If IsEmpty(a) Then
      GetLength = 0
   Else
      GetLength = UBound(a) - LBound(a) + 1
   End If
End Function
1