集合需要比阵列更多的计算机能力吗?

时间:2018-02-28 13:23:34

标签: vba excel-vba excel

当涉及长字符串列表时,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

在这种情况下使用数组和第三个计数变量更有效吗?

1 个答案:

答案 0 :(得分:1)

最有效的方法可能是在工作表的单元格中列出字符串,然后将这些单元格的范围读入数组。这是一种非常快速的方法(在相当快的PC上以毫秒为单位读取100k单元的范围):

Sub test()

Dim a() As Variant

a = Range("A1:A1000").Value

End Sub

a现在将包含这些字符串。

请注意,此方法会生成多维基数1数组,而不是基数为零,因此例如上例中的第一个字符串将位于索引1,1。