How to check which line of VBA code is causing errors


Question or issue on macOS:

I am trying to debug a long code I wrote and I need to step line by line.

The thing is I am on a mac and don’t know how to use an F8 in that case. Could anyone tell me how can I do that otherwise and how do I know which line is causing problems with execution?

How to solve this problem?

Solution no. 1:

To check which line is giving you the error, you can use the ERL property. See this sample code below.

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
    MsgBox "Error on Line : " & Erl
End Sub

For this to work, you will have to number the code lines as I have done above. Run the above code and see what happens.

Solution no. 2:

Sub Main()

    Dim lNum As Long

    On Error GoTo ErrHandler

    lNum = 1 / 0

    Exit Sub

    Debug.Print Err.Description

End Sub

When you get to Stop, then Step Into twice. If you don’t have F8, you should have a menu item for stepping into a line. Resume will take you back to the line that caused the error.

Solution no. 3:

  1. Right click the toolbar.
  2. Choose “Customize…”
  3. Select “Debug”
  4. Drag “Step Into” into your toolbar.

Hope this helps!