Используя Excel vba, существует ли простой способ сказать, что «если какая-либо из функций или дочерних подпрограмм была завершена, выйдите из макроса»? - PullRequest
0 голосов
/ 05 марта 2019

Моя (основная) подпрограмма вызвала несколько функций и дочерних подпрограмм.Если в этих функциях и дочерних подпрограммах есть строка «exit function» или «exit sub», и когда она была выполнена, есть ли простой способ выйти из моей основной подпрограммы сразу после?Я думал об использовании числа в качестве флага, но у меня много функций.Есть ли более простой способ сделать это?

Спасибо!

1 Ответ

1 голос
/ 06 марта 2019

Моей первой идеей также является использование флага или глобальной переменной, и сейчас я не вижу более простого способа сделать это.

Так что я думаю, вам нужно сделать что-то похожее на это

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...