Hi, below is one example of several macros I'm using in a workbook. Instead of several macros all having duplicate lines of code, I've decided to use called functions; it makes my life much easier for updating things...

However, one thing I've encountered, is if there is an error in one of the called functions, the macro will continue to run to the macro completion. How can I make the code below stop itself dead in it's tracks if one of the called functions results in an error?

Also, each called function has the same errorhandling as this macro, and it does work. Thus I will know what line in which called function the error came from. I would just like the TEST_MACRO to stop running once an error is encountered.

If at all possible, I would like to accomplish this while retaining the error reporting for TEST_MACRO as well.

Thanks in advance for any help!

Sub TEST_MACRO()
        On Error GoTo ErrorHandler
        ButtonName = Application.Caller
1:      If ButtonName = "Button 358" Then
2:      CLOSEYESNO = MsgBox("Here is a snarky reminder." & vbNewLine & vbNewLine & _
        "" & vbNewLine & vbNewLine & _
        "If you are ready to proceed, click 'Yes', otherwise click 'No'.", vbYesNo)
3:      If CLOSEYESNO = vbNo Then
        Exit Sub
        Else
        End If
'<<<RUN A BUNCH OF CALLED FUNCTIONS>>>
4:      Call FUNCTION_1
5:      Call FUNCTION_2
6:      Call FUNCTION_3
7:      Call FUNCTION_4
8:      Call FUNCTION_5
9:      Call FUNCTION_6
10:     Call FUNCTION_7 
11:     Call FUNCTION_8
12:     Call FUNCTION_9
13:     Call FUNCTION_10
'<<<RENAME OLD VERSION>>>
14:     ActiveWorkbook.SaveAs FileName:=ThisWorkbook.Path & "\" & "OLD VERSION.xlsm"
'<<<DELETE THE OTHER THING>>>
15:     Kill ThisWorkbook.Path & "\" & Range("A1").Value
        Exit Sub
ErrorHandler:
        Call EMAIL_ERROR("TEST_MACRO", Err.Number, Err.Description, Erl, Application.UserName, Now)
End Sub