当涉及长字符串列表时,vba中的集合是否不如数组有效?
我的vba-Tool没有我想要的那么快。我使用了很多集合,因为我没有REDIM,也没有必要使用额外的计数变量。
例如(我想将数组a和集合col联合在一个列表中,但是棘手的部分是,每个数组元素都有一定数量的col元素):
For i = 1 To col.count
colSave.Add "==========================="
colSave.Add a(i - 1)
colSave.Add "==========================="
For k = 1 To colFilter.Item(i).count
colSave.Add col.Item(i).Item(k)
Next k
Next i
在这种情况下使用数组和第三个计数变量更有效吗?
答案 0 :(得分:1)
最有效的方法可能是在工作表的单元格中列出字符串,然后将这些单元格的范围读入数组。这是一种非常快速的方法(在相当快的PC上以毫秒为单位读取100k单元的范围):
Sub test()
Dim a() As Variant
a = Range("A1:A1000").Value
End Sub
a
现在将包含这些字符串。
请注意,此方法会生成多维基数1数组,而不是基数为零,因此例如上例中的第一个字符串将位于索引1,1。