VBA检查数组在特定位置是否有值
我有一个名为VBA检查数组在特定位置是否有值,vba,excel,Vba,Excel,我有一个名为alterArray()的数组,它会自动填充outlook中的值(工作正常)。数组最多有6个值,但有时数组只有3个值(因此alterArray(0-2)用值填充,但alterArray(3-5)为空) 例如,我如何检查alterArray(5)是否有值 多谢各位 考虑: Sub HowEmptyIsIt() Dim alterArray(0 To 5) As Variant alterArray(0) = "X" MsgBox IsEmpty(alterArr
alterArray()
的数组,它会自动填充outlook中的值(工作正常)。数组最多有6个值,但有时数组只有3个值(因此alterArray(0-2)
用值填充,但alterArray(3-5)
为空)
例如,我如何检查alterArray(5)是否有值
多谢各位 考虑:
Sub HowEmptyIsIt()
Dim alterArray(0 To 5) As Variant
alterArray(0) = "X"
MsgBox IsEmpty(alterArray(5))
End Sub
考虑一下:
Sub HowEmptyIsIt()
Dim alterArray(0 To 5) As Variant
alterArray(0) = "X"
MsgBox IsEmpty(alterArray(5))
End Sub
要获取其实际尺寸,可以使用辅助函数:
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
要获取其实际尺寸,可以使用辅助函数:
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