VBA检查数组是否在某个位置有值

时间:2018-04-01 15:45:31

标签: vba excel-vba excel

我有一个名为alterArray()的数组,它会自动填充outlook的值(工作正常)。该数组最多有6个值,但有时数组只有3个值(因此alterArray(0-2)填充值但alterArray(3-5)为空)。

如果,例如,alterArray(5)是否有值?

,我如何检查

非常感谢!

2 个答案:

答案 0 :(得分:3)

考虑:

Sub HowEmptyIsIt()
    Dim alterArray(0 To 5) As Variant
    alterArray(0) = "X"
    MsgBox IsEmpty(alterArray(5))
End Sub

enter image description here

答案 1 :(得分:3)

获取其实际维度,您可以使用辅助函数:

Function GetActualDimension(arr As Variant) As Long
    Dim i As Long
    If IsEmpty(arr) Then Exit Function
    For i = LBound(arr) To UBound(arr)
        If IsEmpty(arr(i)) Then Exit For
    Next
    GetActualDimension = i - 1
End Function

您可以在主代码中利用如下:

Sub main()
    Dim alterArray As Variant

    MsgBox GetActualDimension(alterArray) '-> returns zero
    alterArray = Application.Transpose(Range("A1:A4").Value) ' fill your array
    MsgBox GetActualDimension(alterArray) '-> returns "actual" size
End Sub