Определите, выполняется ли шаг в Excel VBA

#excel #vba #debugging

#превосходить #vba #отладка

Вопрос:

Чтобы ускорить макросы, имеет смысл отключить обновление экрана с Application.ScreenUpdating = False помощью . Однако это значительно усложняет отладку. Я знаю, что могу вручную установить Application.ScreenUpdating = True в окне «Немедленно», но мне интересно, есть ли какой-либо способ определить, что код шагает, и отключить каждый экземпляр Application.ScreenUpdating = False .

У меня есть внутренняя переменная под названием StepCode, которая останавливает код в определенных точках, но мне интересно, есть ли лучший способ…?

Комментарии:

1. Честно говоря, это похоже на проблему XY. Я бы не стал использовать экран для отладки, я бы использовал часы Debug.Print или Debug.Assert точки останова и т. Д.

2. Иногда я использую константу DBUG = False or True для включения/выключения строк debug.print. Вы могли бы Application.ScreenUpdating = DBUG вместо Application.ScreenUpdating = False