Макросы Excel - Отладка кода
Вы узнали, что макрос хранится в Excel как код VBA. Вы также узнали, что можете напрямую писать код для создания макроса в редакторе VBA. Однако, как и в случае с любым кодом, даже код макроса может иметь дефекты, и макрос может работать не так, как вы ожидали.
Это требует изучения кода, чтобы найти дефекты и исправить их. Термин, который используется для обозначения этой деятельности при разработке программного обеспечения, - отладка.
Отладка VBA
Редактор VBA позволяет приостановить выполнение кода и выполнить любую необходимую задачу отладки. Ниже приведены некоторые из задач отладки, которые вы можете выполнить.
- Пошаговый код
- Использование точек останова
- Резервное копирование или движение вперед в коде
- Не переходить через каждую строку кода
- Запрос чего-либо при прохождении кода
- Остановка казни
Это лишь некоторые из задач, которые вы можете выполнять в среде отладки VBA.
Пошаговый код
Первое, что вам нужно сделать для отладки, - это выполнить код во время его выполнения. Если у вас есть представление о том, какая часть кода, вероятно, вызывает дефект, вы можете перейти к этой строке кода. В противном случае вы можете выполнять код построчно, выполняя резервное копирование или продвигаясь по коду.
Вы можете войти в код либо из диалогового окна «Макрос» в своей книге, либо из самого редактора VBA.
Stepping into the code from the workbook
Чтобы войти в код из книги, сделайте следующее:
- Щелкните вкладку ПРОСМОТР на ленте.
- Щелкните Макросы.
- В раскрывающемся списке выберите Просмотреть макросы.
Откроется диалоговое окно «Макрос».
- Щелкните имя макроса.
- Щелкните кнопку Step into.
Откроется редактор VBA, и код макроса появится в окне кода. Первая строка в коде макроса будет выделена желтым цветом.
Stepping into the code from the VBA editor
Чтобы войти в код из редактора VBA, сделайте следующее:
- Щелкните вкладку РАЗРАБОТЧИК на ленте.
- Щелкните Visual Basic. Откроется редактор VBA.
- Щелкните модуль, содержащий код макроса.
Код макроса появится в окне кода.
Щелкните вкладку «Отладка» на ленте.
Выбрать Step into из раскрывающегося списка.
Будет выделена первая строка в коде макроса. Код находится в режиме отладки, и параметры в раскрывающемся списке «Отладка» станут активными.
Резервное копирование или движение вперед в коде
Вы можете двигаться вперед или назад в коде, выбрав Step Over или Step Out.
Не переходить через каждую строку кода
Вы можете избежать пошагового выполнения кода каждой строки, если определите потенциальную часть кода, которую необходимо обсудить, выбрав «Выполнить до курсора».
Использование точек останова
В качестве альтернативы вы можете установить точки останова в определенных строках кода и выполнить код, наблюдая за результатами в каждой точке останова. Вы можете переключить точку останова и очистить все точки останова, если и когда это необходимо.
Использование часов
Вы можете добавить часы во время отладки, чтобы оценить выражение и остановить выполнение, когда переменная достигает определенного значения. Это означает, что вы настраиваете контрольное выражение, которое будет отслеживаться до тех пор, пока оно не станет истинным, а затем макрос остановится и оставит вас в режиме прерывания. VBA предоставляет вам несколько типов часов на выбор, чтобы выполнить то, что вы ищете.
Остановка казни
Во время отладки, в любой момент времени, если вы нашли ключ к разгадке того, что происходит не так, вы можете остановить выполнение для дальнейшей расшифровки.
Если вы опытный разработчик, терминология отладки вам знакома, а параметры отладки редактора VBA сделают вашу жизнь проще. Даже в противном случае освоение этого навыка не займет много времени, если вы изучили VBA и понимаете код.