Быстро удаляйте дублирующиеся строки из VBA Collection - PullRequest
0 голосов
/ 12 июня 2018
Dim MyCollection As VBA.Collection
Set MyCollection = New VBA.Collection

For i = MyCollection.Count To 1 Step -1
    For j = (i - 1) To 1 Step -1
        If MyCollection(i) = MyCollection(j) Then
            MyCollection.Remove i
            Exit For
        End If
    Next j
Next i

В настоящее время в MyCollection есть 8000 записей электронной почты.Я хотел бы удалить избыточные элементы из этого большого списка, но быстрее.

Как я могу ускорить этот код?

1 Ответ

0 голосов
/ 12 июня 2018

У меня есть совет, он довольно простой и должен быть эффективен.

Конечно, с некоторыми "но" и "главным", но ":

  • у вас должно быть достаточнопамять
  • количество удалений должно быть достаточно высоким

Совет: не удалять элемент по элементу

Вместо удаления: создать новая коллекция без ненужных записей.

После этого: отбросить старую коллекцию целиком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...