Redim没有昏暗?

时间:2012-10-16 03:18:16

标签: 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

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

干杯!

1 个答案:

答案 0 :(得分:7)

这很有趣。 This MSDN page确认你所看到的内容:这是一个引用:

  

“您可以使用ReDim语句隐式声明一个数组   一个程序。当你注意不要拼错阵列的名字时要小心   使用ReDim语句。即使Option Explicit语句是   包含在模块中,将创建第二个数组。“

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

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

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

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