Redim没有昏暗?

DUH*_*ite 4 arrays vba

我在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)

有什么理由我不应该使用这个快捷方式吗?

干杯!

Dou*_*ncy 7

那很有意思. 这个MSDN页面确认了你所看到的内容:这是一个引用:

"您可以使用ReDim语句在过程中隐式声明一个数组.当您使用ReDim语句时,请注意不要拼错数组的名称.即使模块中包含Option Explicit语句,第二个数组也将是创建".

这个页面解释了Redim创建一个新数组并将现有数组复制到其中(假设有一个):

http://msdn.microsoft.com/en-us/library/w8k3cys2%28v=vs.80%29.aspx

关于你的问题,如果你这样做,我会说不,因为它令人困惑,并且确实打开了你的代码,而选择明确无法捕获的错误.

合理地说,Redim Preserve没有表现出这种行为.