Ana*_*com 97
数组的长度:
UBound(columns)-LBound(columns)+1
UBound 单独不是获取每个数组长度的最佳方法,因为VBA中的数组可以从不同的索引开始,例如`Dim arr(2到10)
Dim arr(2 to 10)仅当数组基于1时才会返回正确的结果(例如,开始索引为1,例如UBound,在任何其他情况下,它将返回错误的结果,例如Dim arr(1 to 10)
有关 此VBA阵列教程中的VBA阵列的更多信息.
Mar*_*ese 27
功能
Public Function ArrayLen(arr As Variant) As Integer
ArrayLen = UBound(arr) - LBound(arr) + 1
End Function
Run Code Online (Sandbox Code Playgroud)
用法
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.
Run Code Online (Sandbox Code Playgroud)
如果变量为空,则将引发错误。防弹代码如下:
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
Run Code Online (Sandbox Code Playgroud)