I'm trying to find the line number where my code crashes but many explanation on this site seems to complicated for my level.
My code is basically as below and I have no idea where it's breaking.
Sub1   
    Call function1  
    Call function2  
End Sub  
Other answers on this website seems to be just a short function. But I don't know where to call the function in my code or how to get a popup message. If I'm meant to put my sub1 code into their function, I don't know where either. Beginner here.
If your code doesn't have line numbers, then VBA has no way of giving you line numbers.
You can write VBA and make it look 1980-like to do this:
Sub1
On Error GoTo 100
10   Call Function1
20   Call Function2
90   Exit Sub
100  Debug.Print Err.Message & " on line " & Erl
End Sub
But you don't want to do that. Really, you don't need a line number.
You need smaller functions that handle runtime errors.
On Error GoTo ErrHandler
When a runtime error occurs, execution jumps to the line label called ErrHandler.
     ...
     Exit Sub
ErrHandler: '<< the line label is denoted with a colon
What goes in that handler? If you're debugging, you might want to just Stop execution there and inspect your locals:
    Stop
Then add Resume on the next line, and press F8 to step into it. Resume will return to the call that caused the error. If that's a function call, then you need to handle runtime errors in that function.
Make sure you never leave Stop and Resume instructions in production code:
Sub WhenWillThisEnd()
    On Error GoTo ErrHandler
    Debug.Print 42/0
    Exit Sub
ErrHandler:
    Resume 'jumps back to the line that caused the error
    Resume Next 'resumes execution on the line right after the one that went boom
End Sub
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With