首页 > 解决方案 > 使用 excel vba,是否有一种简单的方法可以说“如果退出任何函数或子潜艇,则退出宏”?

问题描述

我的(主)子调用了几个函数和子子。如果这些函数和子子程序中有“退出函数”或“退出子程序”行,并且当它被执行时,有没有一种简单的方法可以立即退出我的主子程序?我考虑过使用数字作为标志,但我有很多功能。有没有更简单的方法呢?

谢谢!

标签: excelvba

解决方案


我的第一个想法也是使用标志或全局变量,现在我没有看到任何更简单的方法。

所以我认为你需要做类似的事情

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

推荐阅读