检查空数组的大小

时间:2012-09-10 16:07:51

标签: vba

  

可能重复:
  How do I determine if an array is initialized in VB6?

我最初将数组声明为空:

Dim ArrayVar() as Variant


'May add some data, may not
if something then 
    Redim Preserve ArrayVar(ubound(ArrayVar,1)+1)
    ArrayVar(ubound(ArrayVar,1)) = "something"
end if


'Always check size of array
if ubound(ArrayVar,1) > x

问题是有时当我检查大小时,没有添加任何东西 - 数组是空的,我得到一个运行时错误。我尝试用Dim ArrayVar(0) as Variant声明数组,但是redim语句不会编译。

最好的办法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用IsEmpty()函数。

请尝试以下代码:

Dim ArrayVar() As Variant

Sub x()
If IsEmpty(arrvar) Then
    ReDim ArrayVar(0)
Else
    ReDim Preserve ArrayVar(UBound(ArrayVar, 1) + 1)
    ArrayVar(UBound(ArrayVar, 1)) = "something"
End If

MsgBox UBound(ArrayVar, 1)
End Sub