Для меня 1-й вариант, т.е. без shenanigan Select-ActiveCell
, быстрее (примерно в 6-8 раз), чем второй вариант (с Select-ActiveCell
).
Этого следует ожидать, потому что каждое взаимодействие между VBA и листом Excel сопряжено с определенными издержками, и вы минимизируете количество взаимодействий в первом варианте.
Теперь я понятия не имею, почему вы испытали бы обратное. Разве это не опечатка и ты имел ввиду вариант 1 быстрее? Я не знаю. Обратите внимание, что я тестировал его в Excel 2003 (и поэтому в тесте пришлось сократить количество столбцов до 256, т. Е. Cells(2, 256)
). Я не понимаю, почему результаты будут отличаться в Excel 2007 или 2010, но, к сожалению, у меня их нет и я не могу их протестировать.
Кроме того, я использовал Debug.Print
вместо MsgBox
для отображения результатов, что гораздо менее раздражает при выполнении нескольких реализаций теста.