rasdmr Пользователь Сообщений: 7 |
#1 17.06.2021 11:46:13 Здрасте. Есть макрос (ниже). Создал я его на великом весеннем карантине 2020 путем обычной записи действий. С тех пор этот макрос отрабатывал раз по 100-150 ежесуточно. Работал мгновенно. В середине мая 2021 вдруг начал приостанавливаться. Выяснил, что замирает почти в самом начале на операции Select. Я знаю, что все эти Active и Select это мусорно и все такое, но макрос год работал со скоростью пули, и вдруг (а именно после майского обновления Windows и Office) начал фризить. Причем это происходит только в Office 2013 и 2016. В 2007-2010 (на них не приходят обновления) все летает как прежде. Вот макрос. Затык происходит на синих строках, выделяет диапазон и останавливается. ТОЛЬКО в синим коде. Либо в строке 20, либо 22. Далее никогда ничего не виснет. Висит секунд 15-20 и потом отрабатывается мгновенно. Обновление экрана я закоментил с целью увидеть место фриза.
Есть мнения? Изменено: rasdmr — 17.06.2021 12:00:44 |
|
New Пользователь Сообщений: 4582 |
1. как вы уже сами поняли, что дело не в макросе, а в чём-то другом (файле, данных, обновлениях и т.д.) Изменено: New — 17.06.2021 12:03:26 |
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#3 17.06.2021 13:27:39 ну русские комметарии не сильно помогут, а вот то что сразу в глаза бросается так это работа с выделенными (SELECT) областями. Все эти
заменить на
и
ну а там и видно будет что и как у вас. По вопросам из тем форума, личку не читаю. |
||||||
rasdmr Пользователь Сообщений: 7 |
#4 17.06.2021 15:26:49
это там просто комменты, типа Отключаем обновление экрана или Отключаем автоматический пересчет — на макрос никак не влияет, для себя писал, чтоб помнить, что за строка
с примером не могу, не выдернуть из полного файла, там обработка хитрой таблички из инета, т.е. ручками таблица на сайте выделяется, копируется, в файл вставляется и запускается макрос, который сделает из таблички нормальные строки/столбцы и сразу посчитает. Пример таблички Вашингтон Мистикс (ж) — Атланта Дрим (ж) | H2H | Баскетбол | БЕТСИТИ (betcity.ru) , вот скриншот рабочего файла, этот макрос работает в синем квадрате, делает из этой ужасно-замудренной таблички вот такую простую [SPOILER=]https://images4.imagebam.com/3a/fe/ea/ME14IYU_o.png[/SPOILER]
Уже пытался, если заменить все, то получается такой замедленный мультик, вокруг диапазона появляется пунктирчик, потом очищается, пунктирчик пропадает, появляется в следующем диапазоне и так в каждой строчке, что в итоге становится еще дольше. На обработку 20 строк ушло 51 сек Вот я приложу файл, куда внес эту хитрую табличку. Надо просто нажать Ctrl+W или запустить макрос volten_betcity_3. Ждать, пока курсор не попадет в F1. Вот этот самый файл до мая работал молниеносно. За год в нем ничего не менялось. В Excel 2007-2010 вот этот приложенный файл выполняет все мгновенно! Изменено: rasdmr — 17.06.2021 23:53:37 |
||||||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
ну и в 2016 тоже не долго успел до 3 досчитать когда отключил события и обновления экрана. Комп перезагружали давно? Изменено: БМВ — 17.06.2021 15:54:08 По вопросам из тем форума, личку не читаю. |
msi2102 Пользователь Сообщений: 3137 |
#6 17.06.2021 16:24:26
В начале кода попробуйте раскомментировать. Только не забудьте в конце включить всё назад. И как правильно заметил БМВ, в 3 сообщении, постарайтесь максимально избавиться от Selectов. Изменено: msi2102 — 17.06.2021 16:37:33 |
||
rasdmr Пользователь Сообщений: 7 |
#7 17.06.2021 17:17:43
Буквально вчера вечером снес 8.1 и установил 10. Вообще комп работает только днем. Проблема такая же и на ноуте, где 8.1 home
Оно было расскомментированно. Закомментировал с целью увидеть место фриза. Я понимаю аллергию у всех на Select, но файл отработал молниеносно тысячи раз и перестал работать вдруг, по щелчку. В 2 часа ночи он работал. Потом в 11 утра обновилась винда и офис ежемесячным обновлением и все. Я понимаю, что Select это не кошерно или не красиво, но так сильно влиять на скорость такого маленького макроса это не может. У меня в файле не один этот макрос (исходные таблички из разных источников, под каждый вид свой макрос), однако остальные тоже содержат Select и в еще большем количестве и это не мешает. |
|||||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#8 17.06.2021 17:34:07
ну так откатите обновление и проверьте. Если работает, то виноваты они. По вопросам из тем форума, личку не читаю. |
||
New Пользователь Сообщений: 4582 |
#9 17.06.2021 20:56:30
вот поэтому я в своём сообщении выше и ничего не стал писать ТС’у про Select, раз он сказал, что до этого макрос быстро работал, а после обновления стал тормозить. Изменено: New — 18.06.2021 22:25:44 |
||
rasdmr Пользователь Сообщений: 7 |
В общем проблема решена. Помогли российские враги, британец из городка Телфорд. Нашел через телеграм. Короче, в мае микрософты прекратили поддержку очередного ряда процессоров. Мой Intel G850 попал в этот ряд. Теперь глупый Ексель при расчетах создает какую-то там виртуализацию для обращения к процессору, а для этой виртуализации требуется четкое, а не бездумное использование всех этих отключалок/включалок. не наоборот. В конце включаем отслеживание событий, а потом прорисовку экрана, именно так, а не наоборот. По утверждению британа возня с Select в макросах менее 1000 строк для 32бит и 5-10 тыс строк для 64бит при обычном процессоре Celeron 1,1Ггц и минимальном кэше 1 Мб никакого влияние на скорость выполнения макроса не оказывает. Всем спасибо и удачи. |
_Igor_61 Пользователь Сообщений: 3007 |
#11 17.06.2021 21:44:46
Забавно, если это правда… |
||
msi2102 Пользователь Сообщений: 3137 |
#12 17.06.2021 22:23:44
В 6 сообщении я Вам писал чтобы Вы это сделали. Последовательность именно та которую Вы описывали выше (хотя не уверен, что последовательность влияет на скорость, возможно это и так). И вы писали, что закомментировали их специально. Не понимаю почему нужно было ждать ответа из-за бугра, чтобы вернуть всё как было Изменено: msi2102 — 17.06.2021 22:39:27 |
||
БМВ Модератор Сообщений: 21385 Excel 2013, 2016 |
#13 17.06.2021 22:56:33
Ну в британии много чего не оказывает. Про SELECT я писал прежде всего по тому, что портянку бессмысленных операций смотреть даже трудно. а не по тому что вдруг все залетает. Я конечно грешил на данные, вдруг что поменялось иии. но всегда искать надо корневые изменения, которые могут влиять на приложения. По вопросам из тем форума, личку не читаю. |
||
I have an issue running an Excel Macro. I have read a lot of threads and tried all of the suggestions but no change in performance. I have run the same file/macro on 2 machines, details below. No matter what change on Laptop 2 (problematic machine), iteration time was unchanged.
Laptop 1:
Dell Precision M4800
2015
Intel i7-4800MQ @2.70GHz, 32GB 64-bit
Windows 10 Enterprise
Version 1909
OS 18363.1734
Excel 16.0.13127.21734 64-bit
Laptop 2:
Macbook Pro 15″ mid-2020
2021
Intel i9-9980HK @2.4GHz, 64GB 64-bit
Windows 10 Home
Version 20H2
OS 19042.1237
Excel 16.0.14326.20384 64-bit
Running the same file, same macro on both machines
1.5M+ calculations per iteration (cell formulas), 7 output cells
Laptop 1 = 11 seconds per iteration; Outlook, multiple Excel files open, Teams chat, Teams meeting, 3 sessions File Explorer, 2 sessions Chrome (multiple/many tabs each), has not rebooted in over a week (I know.. hard to believe); noticed slower operation of other programs, no change in performance of macro with other programs open
Laptop 2 = 24 seconds per iteration; no additional programs open or running, freezes system
Laptop 2:
Rebooted
Ran in Normal view (was not in Page Layout)
Disabled hardware acceleration
Ran with Wifi on and off
Ran clean boot
Ran diagnostic mode
Disabled all startup programs
Ran repair on 32-bit version
Uninstalled 32-bit/re-installed 64-bit Office 365
mc-black,
Да, ожидала ответа на решение проблемы.
Остальное удалила т.к. там стандартные функции открытия файла и расчет количества строк. И все.
Дальше запускаю этот цикл.
Я не думаю, что в них могут быть проблемы.
Этот код я использовала впервые, поэтому думаю, что проблема может быть в нем.
Я не хотела тратить Ваше время на то, в чем не может быть проблемы.
Спасибо!
P.S. по-прежнему не решила проблему(
Добавлено через 47 секунд
Добавлено через 3 минуты
Alex77755,
Вы думаете?
Проще трудно сделать. Мне нужно «собрать» определенные данные с разных файлов в один. 12 значений для каждой строки(( Что смогла, уменьшила: убрала ссылки, оставила просто формулы. Но проблемы не решилась.
Макрос отрабатывает достаточно быстро. Но все равно, при дальнейшей работе с ним, виснет и в конце концов «обнаружена проблема»….
не открывается файл с макросами |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
В этой статье расскажу, как я решил проблему с Excel у себя на работе раз и навсегда. А теперь постоянно делюсь этим решением с коллегами, а они в свою очередь подтверждают эффективность данных действий. Изначально проблема заключалась в том, что сотрудники каждый день по несколько раз жаловались на то, что Excel зависает при работе: долго открывает файлы, сохраняет, долго пересчитывает формулы и обновляет ячейки, а также наглухо зависает при перемещении по ячейкам, даже при простом клике, окно белеет и вылезает надпись «Программа не отвечает». Зависания Excel от 1 минуты до 30 минут были частой проблемой и головной проблемой для сисадминов, когда я только перешёл на новую работу, поэтому сразу решил заняться этой проблемой. Делалось это для того, чтобы
- снять нагрузку с IT-отдела
- наконец-то чтобы пользователи остались довольными.
- повысить свою квалификацию в решении вопросов пользователей
- выслужиться перед работодателем, куда ж без этого 🙂
- написать данную статью и поделиться с вами, а благодаря вашим коментариям «Спасибо!» я получаю искреннее удовольствие.
Поэтому, если вам поможет моё решение, отпишитесь в комментариях. Итак, я приведу несколько советов в порядке важности, использую которые вы раз и навсегда решите проблема с зависаниями Excel. Если у вас тоже Excel тормозит и зависает при работе с таблицами, воспользуйтесь моими советами в этой статье
Причин на самом деле много, здесь я перечислю пункты по решению основных проблем по мере своей эффективности по убыванию. Бывают и очень узкие проблемы, но во-первых, эти случаи единичны, а во-вторых, они требуют тщательного изучения и исследования. Поэтому ловите 7 способов решения проблемы с Excel, если он тормозит и зависает.
1. Отключить аппаратное ускорение прорисовки (бесплатно)
Пожалуй, это один из самых простых и бесплатных способов ускорить работу Excel, но про который знает не так уж и много айтишников, не говоря уже про простых пользователей. Итак, если у вас Excel зависает и тормозит, сделайте так:
- Откройте меню Файл
- Выберете подпункт Параметры
- Дополнительно
- Внизу найдите раздел Отображение (в старых версиях Экран)
- Найдите пункт «Отключить аппаратное ускорение обработки изображения»
- Поставьте на нём галочку
- Перезапустите программу Excel и заодно окна Microsoft Office
- Готово!
После этого у вас Excel будет работать быстрее и меньше тормозить. Особенно это даёт результат на компьютерах и ноутбуках со встроенной видеокартой, потому что аппаратное ускорение на таких видеокартах более чем сомнительно. Особенно меньше будет подвисать в моменты, когда в большом файле пересчитываются формулы по каждому «чиху» (перемещение по ячейкам, попытки копировать, вызвать контекстное меню, вставить, редактировать) или перерисовываются ячейки при изменении размеров окна.
2. Перейти на SSD (надо купить SSD)
Это универсальный способ для того, чтобы заставить операционную систему и программы быстрее открываться, работать, меньше тормозить. Если до этого Excel и Word у вас открывались за 5-20 секунд, то после перехода на твердотельные накопители это будет происходить за 1-2 секунды. Также Windows будет грузиться не 2-10 минут, а 10-15 секунд. Согласитесь, это очень большой прирост производительности. Вкупе с предыдущим пунктом — это самые действенные способы. Все нижеследующие способы менее эффективные, но тоже позволяют избавиться от тормозов Excel.
Более подробно про SSD я написал в своей статье Срочно переходите на SSD. Плюсы и минусы твердотельных накопителей, сравнение с простыми жёсткими дисками
3. Почистить папку TEMP, Temporary (бесплатно)
Временные файлы — это на самом деле большая проблема на компьютерах, где Windows установлен довольно давно и ни разу эта папка не чистилась. Папка временных файлов у каждого пользователя своя, её легко открыть введя в адресной строке %TEMP% и нажав Enter. Если в этой папке свыше 500-1000 файлов и огромное количество папок с перешифрованными названиями, а также весь список файлов и папок грузится очень долго, значит этот пункт вам очень сильно поможет. Дело в том, что все программы и службы в своей работе используют папку с временными файлами как некоторый отстойник, куда можно ненадолго распаковать файлы, закинуть копии, автосохоранять различные ситуации, закачивать обновления, скрипты. Но не все эти файлы также благополучно удаляются, как создаются. Естественно с течением времени она так набухает, что все программы, использующие эту папку начинают подтормаживать. Excel не исключение, он пытается туда сохранять промежуточные версии документов, пока вы не нажмёте Сохранить, и прочие данные. Соответственно как долго у вас эта папка открывается, также долго Excel может пытаться открыть или восстановить некоторые файлы.
Для решения этой проблемы надо почистить папку со временными файлами. Сделать это можно как вручную, выделив и нажать Delete. Но надо быть аккуратным, не удалить файлы, которые сейчас используются. Но я использую программу Ccleaner. Есть и другие аналоги, однако Ccleaner меня более чем устраивает, главное — не обращать внимание на рекламу и предложения перейти на полную PRO-версию. Скачать последнюю версию можно здесь https://www.ccleaner.com/ru-ru/ccleaner/builds. Выбирайте сокращенную версию, если она там имеется. Одно замечание — можете убирать галочку с «Файлы Cookie» в каждом браузере при стандартной очистке, чтобы у вас не слетала авторизация и не приходилось заново заходить в личные кабинеты и почту. Далее жмёте «Анализ», затем «Очистка». Если у вас удалилось больше 2 Гб, значит у вас очень захламлённый компьютер, данный пункт вам подошёл. Удаляйте временные файлы раз в месяц, полгода. Каждый день и неделю не надо, это уже перебор.
4. Почистить папку %appdata%/Microsoft/Excel от временных файлов (бесплатно)
Кроме папки TEMP, Excel также сохраняет временные копии в %appdata% (которая roaming)/Microsoft/Excel. Также как и в предыдущем пункте, здесь может много файлов лишь с одним отличием — все они принадлежат Excel, ничего лишнего не удалите. Но если вдруг в будущем вам потребуется восстановить какой-то файл, то у вас это не получится. Поэтому опять-таки будьте аккуратны, удаляйте вручную, здесь Ccleaner не поможет.
5. Удалите лишние стили (форматирование), которые наслаиваются при копировании из разных файлов (долго, бесплатно)
Этот способ поможет, если у вас Excel зависает при работе именно с одной конкретной таблицей. Бывает такое, что файл могут редактировать множество пользователей и каждый из них добавляет в файл что-то своё, применяет свои стили. Или, например, когда вы в один файл копируете таблицы и их куски с кучи разных файлов, собираете всё в одном файлике и он начинает тормозить. Особенно это заметно, когда применяется условное форматирование (кто пользуется Excel, тот знает), чересстрочные выделения и прочие стили заголовков, строк и столбцов. Из-за этого «компота», как говорил Медведев, Excel и тормозит. Поэтому если вам все эти форматирования неважны, а важнгы именно данные, то надо из удалить. Выделить диапазон ячеек или весь лист и в меню выбрать «Очистить форматирование». Иногда это не срабатывает ,потому что остаются ссылки и зависимости, а также невидимые объекты. На моей памяти одна сотрудница запихивала в маленькие ячейки 1 на 1 см фотографии по 5Мбайт и искренне удивлялась, почему этот файл долго открывается, обрабатывается и сохраняется.
Если вы сделали всё из предыдущих пунктов и очистили форматирование, но ничего не помогло, то вам надо скопировать все данные таблицы в новый файл и работать далее с новым файлов.
6. Купите лицензию MS Office или последнюю версию офисного пакета (дорого, проблема может быть не в этом)
Вы не поверите, но бывает, что Excel зависает, если у вас пиратская версия, поэтому однозначно купите лицензию. Хоть Майкрософт Офис стоит дорого, но он стоит каждой копейки, ведь благодаря ему вы можете зарабатывать. А лицензионная версия часто работает без сбоев из-за ошибок активации, а также ошибок, связанных с патчами, кряками и активаторами. Просто купите, для дома версия стоит недорого.
И в том случае, если вы ещё пользуетесь версиями Microsoft Office 2007 или даже 2003, то пришла пора поставить новую версию. Некоторые функции в старых версиях отсутствует, также потихоньку сокращается совместимость файлов. Так, например, файлы, запароленные в свежей версии Excel, допустим 2016 или 2019, могут просто не открыться в версии 2007. Я уж молчу, что в 2003 изначально не было поддержки файлов xlsx и docx, над оставить патч, а в 2007 нет поддержки файлов формата odf и ods, также нет экспорта в PDF напрямую, возможности работы с pdf и многих других функций.
7. Отключите лишние надстройки
Чуть не забыл про этот пункт. Так как Excel очень мощная программа, то другие программы интегрируются в неё с помощью разных надстроек. Есть надстройки OneDrive, КонсультантПлюс, Foxit, антивирусов, конвертеров файлов и прочие. Пользуетесь вы ими редко, либо не пользуетесь совсем, а из-за них Excel зависает частенько. Поэтому лишние надстройки надо удалять. Делается это так:
- Файл
- Параметры
- Надстройки
- в пункте Активные надстройки приложений выбрать ненужные и отключить
- Перезапустить Excel.
В принципе всё. Пользуйтесь на здоровье, работайте с Excel без тормозов, лагов и зависаний, редактируйте таблицы и не испытывайте неудобств. Если статья помогла и оказалась полезна, буду благодарен за комментарии и замечания или дополнения!
Отблагдарить автора статьи также можно переводом, +100 вам в карму!