2013-02-12 4 views
10

Ich habe ein method-A(), die von mehreren Methoden aufgerufen wird,Macro Beenden weiter von der Ausführung der Validierung

von einer Bedingung in Verfahren-A, muß ich das Makro beenden.

Ich sah eine Option als Exit sub, aber dies wird nur die aktuelle sub ie:method-A() verlassen und das verbleibende Programm wird fortgesetzt.

wie Sie damit umgehen.

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 

Antwort

14

bearbeiten nach Kommentar: Nur end verwenden, wo Sie alle Code beenden möchten.

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 

Ursprüngliche Antwort: Alles, was Sie tun müssen, ist methodA eine Funktion zu machen und diese Funktion als FALSE zurück, wenn Sie die Hauptmethode gemäß dem folgenden Code verlassen möchten: mit diesem

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 
+0

das Problem Ansatz ist, dass ich mehrere Funktionsaufruf und nicht nur 1 Schicht Funktionsaufruf habe. Dieser variable Ansatz ist also nicht praktisch –

+0

Ist die aktualisierte Antwort, was Sie suchen? – CuberChase

+0

ohhh das könnte ... lassen Sie mich überprüfen –

Verwandte Themen