我在Win7下使用Access 2010.我发现我可以在运行时通过简单地调用来维护我的数组,ReDim arrayName(x)而无需先将数组声明为Dim arrayName().
Sub FooBar()
ReDim myArray(2)
myArray(0) = "This is the first string in myArray."
myArray(1) = "This is the second string in myArray."
myArray(2) = "And this is the last string in myArray."
MsgBox myArray(0) & vbCrLf & myArray(1) & vbCrLf & myArray(2)
End Sub
Run Code Online (Sandbox Code Playgroud)
有什么理由我不应该使用这个快捷方式吗?
干杯!
那很有意思. 这个MSDN页面确认了你所看到的内容:这是一个引用:
"您可以使用ReDim语句在过程中隐式声明一个数组.当您使用ReDim语句时,请注意不要拼错数组的名称.即使模块中包含Option Explicit语句,第二个数组也将是创建".
这个页面解释了Redim创建一个新数组并将现有数组复制到其中(假设有一个):
http://msdn.microsoft.com/en-us/library/w8k3cys2%28v=vs.80%29.aspx
关于你的问题,如果你这样做,我会说不,因为它令人困惑,并且确实打开了你的代码,而选择明确无法捕获的错误.
合理地说,Redim Preserve没有表现出这种行为.