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

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

但是,当我第二次启动procudre时,我有一个条件,在这里myArray被testing:IsEmpty(myArray)返回false所以在表面上它不是空的。 所以当我在即时窗口input这个: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