Excel VBA:数组不是空的但没有值?

时间:2013-02-20 00:28:08

标签: excel excel-vba vba

我有一个名为myArray的全局数组。 在此数组中存储从另一个文件中获取的信息。 该过程处理存储在myArray中的数据,并且工作正常。

然而,当我第二次启动procudre时,我有一个测试myArray的条件: IsEmpty(myArray)返回false 所以它显然不是空的。所以当我输入即时窗口时: UBound(myArray),我收到一条错误消息。 所以它不是空的,但它没有任何价值。 此外,IsNull(myArray)返回false。

这使我的代码无法正常工作,因为它应该看看myArray是否为空,如果不是,那么它会逐个访问myArray的值。显然这会导致第二次出错。

我累了'在程序结束时擦除myArray',这没有用。

任何线索?

谢谢,

编辑:示例代码:

    Global myArray As Variant

    Sub tryMe()
    For i = 0 To 10
        If IsEmpty(myArray) Then
            ReDim myArray(0)
            myArray(0) = i
        Else
        tempVal = UBound(myArray)
        ReDim Preserve myArray(tempVal + 1)
        myArray(tempVal + 1) = i
        End If

    Next i
    MsgBox UBound(myArray)

    End Sub

0 个答案:

没有答案