Sub test() Dim i&, tm! '---------------------------------------- tm = Timer With New Collection For i = 1 To 1000000 .Add Key:=CStr(i), Item:=i Next End With Debug.Print "Collection_Add", Timer - tm '---------------------------------------- tm = Timer With CreateObject("Scripting.Dictionary") For i = 1 To 1000000 .Add Key:=CStr(i), Item:=i Next End With Debug.Print "Dictionary_Add", Timer - tm '---------------------------------------- tm = Timer With CreateObject("Scripting.Dictionary") For i = 1 To 1000000 .Item(i) = i Next End With Debug.Print "Dictionary_Item", Timer - tm '---------------------------------------- tm = Timer With New JScript .LoadFromRange Range("a1.a6") .Control.Run ("foo") End With Debug.Print "JScript", Timer - tm End Sub
Sub test() Dim i&, tm! '---------------------------------------- tm = Timer With New Collection For i = 1 To 1000000 .Add Key:=CStr(i), Item:=i Next End With Debug.Print "Collection_Add", Timer - tm '---------------------------------------- tm = Timer With CreateObject("Scripting.Dictionary") For i = 1 To 1000000 .Add Key:=CStr(i), Item:=i Next End With Debug.Print "Dictionary_Add", Timer - tm '---------------------------------------- tm = Timer With CreateObject("Scripting.Dictionary") For i = 1 To 1000000 .Item(i) = i Next End With Debug.Print "Dictionary_Item", Timer - tm '---------------------------------------- tm = Timer With New JScript .LoadFromRange Range("a1.a6") .Control.Run ("foo") End With Debug.Print "JScript", Timer - tm End Sub
Стало интересно, зарегистрировался. Получил для 643490 уникальных из 1000000 1. Для Collection 6 сек 2. Для Dictionary_Item 21 сек 3. Для ADO с запросом "Select Distinct F1 From [Sheet1$] Order By F1" (включение/отключение сортировки почти не влияет) 13 сек
Для Collection назначал, ко всему прочему, ключи Collection.Add vNum, CStr(vNum). Для всех запись результата в двумерный массив для вывода на лист (практически не замедляет)
Стало интересно, зарегистрировался. Получил для 643490 уникальных из 1000000 1. Для Collection 6 сек 2. Для Dictionary_Item 21 сек 3. Для ADO с запросом "Select Distinct F1 From [Sheet1$] Order By F1" (включение/отключение сортировки почти не влияет) 13 сек
Для Collection назначал, ко всему прочему, ключи Collection.Add vNum, CStr(vNum). Для всех запись результата в двумерный массив для вывода на лист (практически не замедляет)anvg