2013-02-12 46 views
10

पर आगे को क्रियान्वित करने से मैक्रो समाप्त मैं एक method-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 

उत्तर

14

संपादित करें: बस 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 

मूल उत्तर: आप सभी MethodA एक समारोह कर रहा है और इस समारोह वापसी के रूप में गलत है, तो आप निम्न कोड के अनुसार मुख्य विधि से बाहर निकलना चाहते की जरूरत है:

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

इस के साथ समस्या दृष्टिकोण यह है कि मेरे पास एकाधिक फ़ंक्शन कॉल है और फ़ंक्शन कॉल की केवल 1 परत नहीं है। इसलिए यह परिवर्तनीय दृष्टिकोण व्यावहारिक नहीं है –

+0

क्या अपडेट किया गया उत्तर आप के बाद क्या हैं? – CuberChase

+0

ओह यह हो सकता है ... मुझे –