Как проверить, какая строка кода 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

  • Щелкните правой кнопкой мыши на панели инструментов.
  • Выберите "Настроить..."
  • Выберите "Отладка"
  • Перетащите "Шаг в" на панель инструментов.