终止宏从进一步执行验证

Nav*_*abu 16 excel vba excel-vba

我有一个method-A()从多种方法调用,

在方法A的条件下,我必须终止宏.

我看到一个选项,Exit sub但这将退出当前sub ie:method-A(),剩下的程序继续.

如何处理这个.

Sub mainMethod()
    method-A()
end Sub

Sub method-A()
    if (true) Then
         'Terminate the macro. that is exit method-A() and also mainMethod()
end Sub
Run Code Online (Sandbox Code Playgroud)

Cub*_*ase 19

评论后编辑:只需使用end您要终止所有代码的位置.

Sub mainMethod()
    method_A()
end Sub

Sub method-A()
    if (true) Then End
         'Terminate the macro. that is exit method-A() and also mainMethod()
end Sub
Run Code Online (Sandbox Code Playgroud)

原始答案:您需要做的就是使methodA成为一个函数,如果要按照以下代码退出main方法,则将此函数返回为FALSE:

Sub mainMethod()

    'Run the custom function and if it returns false exit the main method
    If Not method_A Then Exit Sub

    'If method_A returns TRUE then the code keeps going
    MsgBox "Method_A was TRUE!"

End Sub

Function method_A() As Boolean
    Dim bSomeBool As Boolean

   'Code does stuff
   bSomeBool = True

   'Check your condition
   If bSomeBool Then
       'Set this function as false and exit
       method_A = False
       Exit Function
   End If

    'If bSomeBool = False then keep going
End Function
Run Code Online (Sandbox Code Playgroud)