@Araben

Влияет ли Excel VBA Application.ScreenUpdating на приложения?

Добрый день!

В Excel выполняется большой макрос из десятка модулей и функций, в многих из которых используется Application.ScreenUpdating=True/False для ускорения.
Есть также другой макрос, который вызывает первый в цикле (для тестирования).

Проблема: во время работы второго макроса некоторые приложения (были замечены Word,Outlook) "не активны", но нет статуса "не отвечает" или подобного, при этом файл Word можно выбрать из Проводника (с ним проблем нет), но дальше в этом файле ничего не нажимается, без какой-либо реакции.

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

Также дополнительный вопрос: может ли скорость выполнения макроса зависеть от того, что открыты другие файлы с большими макросами? (Пример: открыто 3 файла, скорость макроса в одном из них 5 секунд. Если закрыть ненужные файлы, скорость будет 1 сек).

Макросы выложить нет возможности по различным причинам.
  • Вопрос задан
  • 385 просмотров
Решения вопроса 1
honor8
@honor8
Принципы быстродействия VBA в описании
Сложно читать текст.
На время выполнения влияет всё: наличие на машине одновременно нескольких версий MS Office, размер файла (причины разные), время доступа к файлу (особенно, если файл в сети), количество формул в книге, наличие пользовательских формул в книге (рекомендуется использовать "Параметры вычислений" = Вручную), при большом количестве формул - обновление "экрана" приложения (GUI), наличие макросов событий при "точечной" работе с ячейками (Events), безтиповые переменные (Variant), неявно объявленные массивы (создание массива в переменной типа Variant), работа с ячейками без использования массивов и использование метода Select без надобности (в т.ч. как делает макрорекодер).
Позднее связывание библиотек также может значительно увеличивать время выполнения макроса.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы