Моей первой идеей также является использование флага или глобальной переменной, и сейчас я не вижу более простого способа сделать это.
Так что я думаю, вам нужно сделать что-то похожее на это
Option Explicit
Sub Main()
Dim exitMain As Boolean: exitMain = False
Call A(12, exitMain)
If exitMain Then
MsgBox "Exit because of A"
Exit Sub
End If
Call B(3, exitMain)
If exitMain Then
MsgBox "Exit because of B"
Exit Sub
End If
MsgBox "Reached end of main"
End Sub
Sub A(val1 As Long, cancel As Boolean)
If val1 = 2 Then
cancel = True
Exit Sub
End If
MsgBox "Reached end of A"
End Sub
Sub B(val1 As Long, cancel As Boolean)
If val1 = 3 Then
cancel = True
Exit Sub
End If
MsgBox "Reached end of B"
End Sub