重新初始化dynamic数组

当我使用Range.Value函数时,我有大量的单元格(大约30,000行,60列)溢出。 这似乎发生,因为由Range.Value函数创build的内存托pipe数组不够大。 如果我声明一个数组,那么它工作得很好。 所以我需要一个dynamic数组variables,我可以将其设置为等于Range.Value,将数据传送到表单上的其他位置,然后重新初始化它以用于下一个大范围。 我不能在我的生活中find有关如何重新初始化dynamic数组的信息。

如果我使用Erase myArray那么它似乎我不能再赋值给variables,但我不能再Dim数组。 如果我Redim ,我将不得不创build很多复杂的函数来手动find我的数组的大小。 这里有什么窍门?

您可以用新的范围值覆盖现有的数组。

如果新范围内的行数/列数小于之前分配给数组的数据,它仍然会擦除之前在数组中的所有数据 – 只有新的范围值被分配给数组。

 Sub populateArray() Dim arrValues() As Variant arrValues = Range("B1:B6") arrValues = Range("A1:A4") End Sub 

在指定Range("A1:A4")后, arrValues将仅包含4行数据,即使先前有6行数据分配了Range("B1:B6")