लोपा के लिए VBA ब्रेक - एक्सेल VBA में लूप से कैसे बाहर निकलें?

एक्सेल VBA लूप के लिए ब्रेक

में VBA तोड़ के लिए लूप यह समय की nuber को चलाने के लिए भी पाश के लिए बाहर निकलने के रूप में जाना जाता है, किसी भी प्रक्रिया में हर पाश निर्देश या मापदंड के som11e सेट दिया गया है, लेकिन यह बहुत आम है कि एक अनंत लूप में कुछ पाश प्राप्त इस प्रकार भ्रष्ट है ऐसे परिदृश्यों में कोड जिन्हें हमें कुछ स्थितियों से बाहर आने के लिए लूप के लिए या बाहर निकलने की आवश्यकता होती है।

मान लें कि हमने लूप को 10 बार चलाने का निर्देश दिया है, और दी गई शर्त के आधार पर, यदि सेल वैल्यू या कोई अन्य आपूर्ति की गई मानदंड सफल है, तो उसे 10 के पूर्ण लूप कोटा को पूरा करने से पहले एक्सेल लूप से बाहर निकलना होगा। इस लेख में, हम आपको दिखाएंगे कि दिए गए मानदंडों के आधार पर लूप से कैसे बाहर निकलें।

VBA में लूप कैसे तोड़ें / बाहर निकलें?

# 1 - अगले लूप के लिए ब्रेक

VBA फॉर नेक्स्ट लूप का उपयोग कोशिकाओं पर लूप करने और कार्यों का एक विशिष्ट सेट करने के लिए किया जाता है। उदाहरण के लिए, नीचे दिए गए VBA कोड को देखें।

कोड:

सब एग्जिट_अप () डिम के अस लॉन्ग फॉर के = १ टु १० सेल्स (के, १)। वेल्यू = के नेक्स्ट एंड सब।

यह सेल A1 से A10 तक सीरियल नंबर डालेगा।

फ़ॉर नेक्स्ट लूप के साथ यह स्पष्ट बात है।

अब मैं लूप को तोड़ना चाहता हूं जब पहले 10 कोशिकाओं में कोई मूल्य पाया जाता है। इसके लिए, मैंने सेल A8 में कुछ टेक्स्ट वैल्यू दर्ज की है।

अब मैं कोड में यह निर्देश देना चाहता हूं, "यदि लूपिंग सेल का एक निश्चित मूल्य है, तो उसे पूर्व-निर्धारित सीमा से पहले लूप से बाहर निकलना होगा।"

कोड:

सब एक्जिट_अप () डिम के ऐज लॉन्ग फॉर के = १ टु १० अगर सेल्स (के, १) ।वल्लु = "" तो सेल्स (के, १) ।वैल्यू = के एल एग्जिट फॉर एंड इफ नेक्स्ट के एंड एंड।

कोड की ये लाइन देखें:

यदि कोशिकाओं (कश्मीर, 1) .Value = "" तो फिर
कोशिकाओं (कश्मीर, 1) .Value = कश्मीर
वरना
के लिए बाहर निकलें
समाप्ति हैं

यह कहता है कि यदि सेल (के, 1)। मान = "लूपिंग सेल 1 से 10 तक सीरियल नंबर डालने के लूप को जारी रखने के लिए कुछ भी नहीं के बराबर है।

लूप का अंतिम भाग कहता है:

अन्य

के लिए बाहर निकलें

यदि उपरोक्त शर्त TRUE नहीं है, तो "बाहर निकलें" लूप है।

अब कोड को रन करें। यह A7 सेल तक सीरियल नंबर डालेगा।

उपरोक्त कोड सीधे कुछ भी कहे बिना लूप से बाहर निकल गया; हम कैसे जानते हैं कि यह पाश से बाहर निकल गया है।

इस अस्पष्टता को साफ़ करने के लिए, हमें नीचे एक सरल VBA संदेश बॉक्स रखना होगा।

कोड:

सब एक्जिट_अप () डिम के ऐज़ लॉन्ग फ़ॉर के = १ टु १० अगर सेल्स (के, १) ।वल्लु = "" तो सेल्स (के, १) ।वैल्यु = के एलसे मिसगबॉक्स "सेल में हमें नॉन खाली सेल मिला है"। कक्ष (K, 1)।

सेल के माध्यम से लूप करते समय, यदि कोई गैर-रिक्त सेल पाया जाता है, तो यह संदेश प्रदर्शित करेगा, कह सकता है, “सेल A8 में हमें गैर-रिक्त सेल मिला है। हम पाश से बाहर निकल रहे हैं ”।

यह एक सेल पते के साथ लूप से बाहर निकलने के उपयोगकर्ता को भी सूचित करेगा। यदि गलती से कोई मूल्य दर्ज किया जाता है, तो हम संदेश बॉक्स में दिए गए सेल पते की जांच कर सकते हैं।

# 2 - लूप तक तोड़ दो

जैसे हम नेक्स्ट लूप के लिए किस तरह से बाहर निकले हैं, उसी तरह, हम "डू तक" लूप से भी बाहर निकल सकते हैं। उदाहरण के लिए, नीचे दिए गए कोड को देखें।

कोड:

उप Exit_DoUntil_Loop () मंद K जितनी लंबी K = 1 Do K = 11 कक्ष तक (K, 1) .Value = KK = K + 1 लूप अंत उप

यह कोड सीरियल नंबर डालने का कार्य भी करता है। उदाहरण के लिए, यदि हम चर "k" मान 6 से बाहर निकलना चाहते हैं, तो हमें मानदंड को IF k = 6 के रूप में दर्ज करना होगा, फिर लूप से बाहर निकलें।

कोड:

उप Exit_DoUntil_Loop () Dim K As Long K = 1 Do K = 11 तक K = 11 यदि K <6 तब कक्ष (K, 1) .Value = K Else बाहर निकलें Do End समाप्त हो गया तो K = K + 1 लूप अंत उप।

यह लूप तब तक चलेगा जब तक कि वैरिएबल वैल्यू 6 नहीं हो जाती। उसके बाद, यह लूप से बाहर निकल जाएगा। यदि आप उपयोगकर्ता को संदेश दिखाना चाहते हैं, तो आप संदेश बॉक्स को भी जोड़ सकते हैं।

कोड:

उप Exit_DoUntil_Loop () डिम K अस लॉन्ग K = 1 डू तब तक K = 11 यदि K 5 "Exit Do End अंत में यदि K = K + 1 लूप एंड सब

यह नीचे संदेश दिखाएगा।

इस तरह, दिए गए मानदंडों के आधार पर, हम लूप से बाहर निकल सकते हैं यदि मानदंड सही हैं, या फिर हम लूप को जारी रख सकते हैं।

दिलचस्प लेख...