Как проверить, какая строка кода VBA вызывает ошибки
Я пытаюсь отлаживать длинный код, который я написал, и мне нужно шаг за шагом.
Дело в том, что я нахожусь на mac и не знаю, как использовать F8 в этом случае. Может ли кто-нибудь сказать мне, как я могу это сделать в противном случае и как узнать, какая строка вызывает проблемы с выполнением?
Ответы
Ответ 1
Чтобы проверить, какая строка дает вам ошибку, вы можете использовать свойство ERL
. См. Этот пример кода ниже.
Sub sample()
Dim i As Long
On Error GoTo Whoa
10 Debug.Print "A"
20 Debug.Print "B"
30 i = "Sid"
40 Debug.Print "A"
50 Exit Sub
Whoa:
MsgBox "Error on Line : " & Erl
End Sub
Чтобы это сработало, вам придется пронумеровать строки кода, как я уже говорил выше. Запустите приведенный выше код и посмотрите, что произойдет.
Ответ 2
Sub Main()
Dim lNum As Long
On Error GoTo ErrHandler
lNum = 1 / 0
ErrExit:
Exit Sub
ErrHandler:
Debug.Print Err.Description
Stop
Resume
End Sub
Когда вы дойдете до "Стоп", тогда "Шаг за шагом" дважды. Если у вас нет F8, у вас должен быть пункт меню для перехода в строку. Возобновление вернет вас к строке, вызвавшей ошибку.
Ответ 3
- Щелкните правой кнопкой мыши на панели инструментов.
- Выберите "Настроить..."
- Выберите "Отладка"
- Перетащите "Шаг в" на панель инструментов.