1

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

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

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

我在程序结束时厌倦了“Erase 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
4

0 回答 0