Отладка и тестирование программ
Итак, нам необходимо нажать клавишу F8 и посмотреть, чему стало равно значение tsk.startDate. Как и следовало ожидать, переменной было присвоено значение 21.08.01. (текущая дата 21 августа 2001 года). Следовательно, функция Now работает корректно.
Далее мы попадаем на следующую точку останова – присваивание значения переменной tsk.DueDate. После очередного нажатия клавиши F8 проверим значения текущих переменных и окончательно обнаружим ошибку.
Значение переменной duration равно 5, прибавляя его к значению текущей даты, мы прибавляем не месяцы (как хотелось бы), а дни. Исправим эту ошибку, изменив код ошибочной строки на следующий:
.DueDate = DateAdd(
"m"
, duration, .StartDate)
Замечание
Встроенная функция DateAdd предназначена для добавления или вычитания из даты указанного числа временных интервалов.
В конце рассказа об отладчике мы решили на рис. 22.10 показать панель инструментов Отладка (Debug) с кнопками, используемыми при отладке, а в табл. 22.1 привести краткую справку по всем использованным и неиспользованным средствам отладчика.
Рис. 22.10. Кнопки панели Отладка
Таблица 22.1. Средства отладчика.
Команда | Назначение |
---|---|
Compile | Компиляция программы |
Run Sub/UserForm | Запуск процедуры или формы |
Break | Прерывание выполнения программы CTRL + Break |
Reset | Остановка выполнения программы |
Toggle Breakpoints | Установить точку останова |
Clear All Breakpoints | Снять все точки останова |
Step Into | Шаг с заходом во вспомогательные процедуры |
Step Over | Шаг с обходом вспомогательных процедур |
Step Out | Шаг с выходом из вспомогательной процедуры |
Step to Cursor | Шаг до курсора. Запускает программу на выполнение до строки с курсором |
Set Next Statement | Позволяет устанавливать следующий выполняемый оператор |
Show Next Statement | Показывает следующий выполняемый оператор |
Immediate Window | Отображает окно отладочных результатов вычисления |
Locals Window | Отображает окно локальных переменных процедуры |
Watch Window | Отображает окно контрольных выражений программы |
Add Watch | Добавляет выражение в окно Watch |
Edit Watch | Исправляет выражение в окне Watch |
Quick Watch | Просматривает значение выделенного выражения |
Call Stack | Позволяет показать стек вызовов процедур в текущий момент. Эта кнопка очень полезна при работе с рекурсивными процедурами |
Comment Block | Позволяет закомментировать выделенный блок операторов |
Uncomment Block | Отменяет сделанные комментарии |
Toggle Bookmarks | Устанавливает закладку |
Clear All Bookmarks | Снимает все установленные закладки |
Find | Вызывает диалоговое окно поиска, посредством которого можно найти ту или иную переменную, выражение и т. д. |
К сожалению, не все приемы отладки можно рассмотреть на нашем простейшем примере.