У меня довольно большая электронная таблица (лист A) (400 тыс. Строк), все с уникальным идентификатором.
У меня ~ 150 тыс. Из них в другой электронной таблице (лист B), которой необходимо передать ее значения,Для этого я сохраняю каждый идентификатор в словаре и его значения для обновления в массиве по своему значению.Например,
dict.Add 'ID_01', Array('val1', 'val2', 'val3')
Затем, чтобы обновить, я запускаю лист A, и при каждом обнаружении этого идентификатора он обновляет ячейки.Для грубой идеи:
With sheet A
For i = 2 to lastrow:
If dict.exists(.Cells(i, 1).value) Then
.Cells(i, 2).Value = dict.Item(.Cells(i,1).Value)(0)
.Cells(i, 3).Value = dict.Item(.Cells(i,1).Value)(1)
.Cells(i, 4).Value = dict.Item(.Cells(i,1).Value)(2)
Next i
Конец
Вышеприведенный пример является лишь ложным примером, но вы можете понять, почему это может занять много времени, часто более 10 минут.Узким местом является не добавление идентификаторов / значений в словарь из листа B, а их обновление обратно на листе A.
Мой вопрос: есть ли способ для меня, чтобы обновить эти значения гораздо быстрее, пока ещесохранить структуру моего словаря?
Любая помощь приветствуется, но было бы предпочтительно, если бы любые предложенные решения не отклонялись слишком далеко от общего подхода, который я изложил выше.