将数据列读入数组的最快方法

AZh*_*Zhu 15 arrays excel vba excel-vba

假如我有一列数字(其中有多少可以变化,但可能在1000-10000之间)并且我想将它们全部读入VBA中的数组,这样做的最快方法是什么?

显然我可以创建一个大小为10000的数组并执行for/while循环,但有没有比这更快的方法?

Sid*_*out 17

像这样?

Dim Ar as Variant

Ar = Sheets("Sheet").Range("A1:A10000").Value
Run Code Online (Sandbox Code Playgroud)

如果你不知道最后一行,那么你可以使用找到最后一行,然后使用上面的代码作为

Ar = Sheets("Sheet").Range("A1:A" & LRow).Value
Run Code Online (Sandbox Code Playgroud)

  • 值得一提(我没有在别处看到它):即使只涉及一列,这个答案也会返回多维数组.Ar阵列可以像Ar(1,1)那样使用,不像Ar(1)那样.此外,即使您的模块中有Option Base 0,它也将是Base 1阵列. (7认同)
  • 这是一个数组. (6认同)