testuser, какая скорость на примере? Или вы хотите, чтобы мы сами заинтересовались вашим решением? Пока совсем не интересно и явно намного дольше…
Цитата |
---|
testuser: Затрачено времени: 67,79688 |
для удаления 2,5 тыс строк? В 60 раз дольше обычного построчного удаления без выкрутасов? Блестящий результат
Цитата |
---|
БМВ: Jack Famous , doober , Вы не увлеклись? В гонке вы забыли о вопросах заданных |
а может
New пусть сам ответит, что ему важнее — вопрос "почему быстрее так, а не эдак" решить или получить намного более быстрый макрос для удаления скрытых строк, который не ставит никаких вопросов…? А то он пока совсем ничего не говорит.
Ответы |
---|
Цитата |
---|
New:1. макрос собирает все строки через Union и удаляет их за 1 раз - МЕДЛЕННЫЙ почему? |
потому что Union тормозит.
Цитата |
---|
New: 2. макрос удаляет в цикле КАЖДУЮ строку снизу вверх - быстрее, чем первый. Почему это быстрее, чем Union? ) |
потому что Union тормозит. С чего вы взяли, что Union должен быть быстрее? Это описано где-то в документации? Лично я тестами показывал прямо противоположное. Union действительно может ускорить операции на малых объёмах, но потом всё делает только хуже (и намного). Всё нужно тестить…
Цитата |
---|
New: 3. тот же макрос, что и второй, только если его запустить на НЕАКТИВНОМ листе - самый быстрый - почему? ) |
как минимум, потому что на "неактивном" листе кроме отфильтрованного диапазона больше ничего нет, а на активном есть 3 фигуры и форматирование, которое нужно двигать.
Для понимания ответов 1 и 2 нужно отречься от привычного "чтобы сделать что-то с диапазонами, нужно собрать их в один" и начать тестить различные варианты. Ложные допущения мешают работе. Для понимания ответа 3, нужно выработать для себя правило задавать вопросы типа "а почему отличается" только после того, как "испытуемые" (методы/свойства и так далее) отличаются только предметом вопроса (по возможности). Для данного вопроса оба листа должны быть идеинтичны за исключением "активности", а это не так. |
Надеюсь, теперь вопросы исчерпаны