myArray という名前のグローバル配列があります。この配列には、別のファイルから取得した情報が格納されます。このプロシージャは、myArray に格納されたデータを処理し、正常に動作します。
ただし、プロシージャを 2 回目に起動すると、myArray がテストされる状態になります。IsEmpty(myArray) は false を返します。明らかに空ではありません。そのため、イミディエイト ウィンドウに「UBound(myArray)」と入力すると、エラー メッセージが表示されます。したがって、空ではありませんが、値はありません。また、IsNull(myArray) は false を返します。
これにより、myArray が空であるかどうかを確認する必要があり、そうでない場合は myArray の値に 1 つずつアクセスするため、コードが正しく機能しなくなります。明らかに、これにより2回目にエラーが発生します。
手順の最後に「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