VBA ऑन एरर गोटो 0 - एक्सेल VBA में त्रुटि GoTo 0 का उपयोग कैसे करें?

एक्सेल VBA त्रुटि गोटो 0 पर

VBA ऑन एरर GoTo 0 एक एरर हैंडलर स्टेटमेंट है जो प्रक्रिया में सक्षम एरर हैंडलर को डिसेबल करने के लिए उपयोग किया जाता है। इसे "त्रुटि हैंडलर डिस्ब्लर" के रूप में जाना जाता है।

किसी भी प्रोग्रामिंग लैंग्वेज में एरर हैंडलिंग एक मास्टर क्लास है जिसे सभी कोडर्स को समझने की जरूरत है। VBA प्रोग्रामिंग लैंग्वेज भी, और हमारे पास इस प्रोग्रामिंग लैंग्वेज में एरर हैंडलिंग तकनीक भी है। "ऑन एरर रिज्यूमे नेक्स्ट" एरर हैंडलर को इनेबल करता है, और "ओन एरर गोस्टो 0" इनेबल एरर हैंडलर को डिसेबल करेगा।

"ऑन एरर रिज्यूमे नेक्स्ट" और "ओन एरर GoTo 0" दोनों ऐसे जोड़े हैं जिन्हें कोड की दक्षता के लिए अग्रानुक्रम में उपयोग करने की आवश्यकता है। त्रुटि को संभालने के लिए, हमें "ऑन एरर रिज्यूमे नेक्स्ट" कथन के साथ शुरुआत करनी होगी और इस त्रुटि हैंडलर को समाप्त करना होगा। हमें "त्रुटि GoTo 0 पर" कथन का उपयोग करने की आवश्यकता है।

इन कथनों के बीच लिखा गया कोई भी लाइन कोड किसी भी प्रकार की त्रुटि को अनदेखा करेगा जो कार्यवाही में हुई है।

त्रुटि GoTo 0 स्टेटमेंट पर कैसे उपयोग करें?

उदाहरण के लिए, नीचे दिए गए कोड को देखें।

कोड:

उप On_ErrorExample1 () कार्यपत्रक ("शीट 1")। चयन करें श्रेणी ("A1")। मान = 100 कार्यपत्रक ("शीट 2")। श्रेणी चुनें ("A1")। मान = 100 अंत उप।

उपरोक्त कोड क्या है, यह पहले "शीट 1" नाम की वर्कशीट का चयन करेगा और सेल ए 1 में यह मान 100 डालेगा।

कोड:

वर्कशीट ("शीट 1")। रेंज चुनें ("ए 1")। मान = 100

फिर यह "शीट 2" नाम की वर्कशीट का चयन करेगा और उसी मूल्य को सम्मिलित करेगा।

कोड:

वर्कशीट ("शीट 2")। रेंज चुनें ("A1")। मान = 100

अब मेरी कार्यपुस्तिका में नीचे की शीट हैं।

"शीट 1" और "शीट 2" नामक कोई शीट नहीं हैं। जब हम कोड चलाते हैं, तो यह नीचे की तरह एक त्रुटि का सामना करेगा।

चूँकि "Sheet1" नाम की कोई शीट नहीं है, इसलिए इसे "सब्सक्रिप्शन आउट ऑफ़ रेंज" त्रुटि का सामना करना पड़ा है। इस त्रुटि को संभालने के लिए, मैक्रो के शीर्ष पर एक त्रुटि हैंडलर कथन "ऑन एरर रिज्यूमे नेक्स्ट" जोड़ूंगा।

कोड:

उप On_ErrorExample1 () त्रुटि को फिर से शुरू वर्कशीट ("शीट 1") पर फिर से चुनें। रेंज ("A1") का चयन करें। मान = 100 वर्कशीट ("शीट 2")। रेंज का चयन करें ("A1")। मान। 100 अंतिम उप।

अब कोड चलाएँ और देखें कि क्या होता है।

यह कोई भी त्रुटि संदेश नहीं देगा क्योंकि त्रुटि हैंडलर कथन पर त्रुटि पुनरारंभ अगला सक्षम है।

उस परिदृश्य की कल्पना करें, जहां हमें "शीट 1" वर्कशीट की अनुपलब्धता के मामले में त्रुटि को अनदेखा करने की आवश्यकता है, लेकिन "शीट 2" नामक वर्कशीट नहीं होने पर हमें सूचित करने की आवश्यकता है।

चूँकि हमने शीर्ष पर त्रुटि पुनः आरंभ में जोड़ा है , इसने त्रुटि को संभालना शुरू कर दिया है, लेकिन साथ ही, हमें यह निर्दिष्ट करने की आवश्यकता है कि इस त्रुटि को अनदेखा करने के लिए हमें कितनी पंक्तियों की आवश्यकता है।

इस उदाहरण में, हमें केवल पहली वर्कशीट के लिए त्रुटि की आवश्यकता है लेकिन दूसरी शीट के लिए। यदि कार्यपत्रक "शीट 2" न हो तो हमें त्रुटि की आवश्यकता होती है। इसलिए पहले वर्कशीट कोड के बाद त्रुटि अक्षम लाइन को त्रुटि GoTo 0 पर जोड़ा जाता है।

कोड:

उप On_ErrorExample1 () त्रुटि को फिर से शुरू करने वाले अगले कार्यपत्रकों ("शीट 1") पर क्लिक करें। श्रेणी ("A1") का चयन करें। मान = 100 त्रुटि पर GoTo 0 कार्यपत्रक ("शीट 2")। श्रेणी का चयन करें ("A1")। मान = 100 अंत उप।

F8 कुंजी दबाकर प्रभाव देखने के लिए अब कोड लाइन को लाइन से चलाएं।

अब, यदि आप F8 कुंजी दबाते हैं, तो एक बार कोड निष्पादन अगली पंक्ति में कूद जाता है, और सक्रिय लाइन कार्य निष्पादित हो जाएगा। अब सक्रिय लाइन (पीले रंग की लाइन) "त्रुटि फिर से शुरू करें" त्रुटि हैंडलर पर है, और त्रुटि हैंडलर सक्षम हो जाएगा।

अब कोई भी त्रुटि होती है। इसे तब तक नजरअंदाज किया जाएगा जब तक कि यह त्रुटि हैंडलर कोड को निष्पादित नहीं करता है " त्रुटि गेटो 0 पर " कथन को अक्षम करता है ।

पिछले प्रयास में, हम त्रुटियों का सामना कर चुके हैं, लेकिन F8 कुंजी को एक बार दबाएं और जादू देखें।

किसी भी प्रकार की त्रुटि दिए बिना, यह कोड का निष्पादन फिर से शुरू कर दिया है, भले ही चयन करने के लिए कार्यपत्रक "शीट 2" नहीं है। अब फिर से F8 दबाएं।

चूंकि कोई Sheet1 नहीं था, इसलिए यह A1 सेल में मान को 500 के रूप में सम्मिलित नहीं कर सकता है, लेकिन यह क्या करता है कि यह 500 के सेल A1 के मान को सम्मिलित करेगा जो भी कार्यपत्रक सक्रिय है। जब मैं कोड निष्पादित कर रहा हूं तो मेरी सक्रिय शीट "शीट 3" थी, इसलिए सेल ए 1 में 100 का मूल्य डाला गया है।

अब F8 कुंजी दबाकर कोड की सक्रिय लाइन " त्रुटि गेटो 0 पर " है। इस लाइन कार्य को निष्पादित किया जाएगा।

चूंकि "त्रुटि GoTo 0 पर" निष्पादित किया गया है, इसने त्रुटि से निपटने की प्रक्रिया को रोक दिया है और यदि कोई त्रुटि होती है, तो फिर से त्रुटियों को दिखाना शुरू कर देता है। F8 कुंजी दबाएं और त्रुटि देखें।

ऑन एरर GoTo 0 के बिना पिछले मामले में, इस त्रुटि को भी नजरअंदाज कर दिया है, लेकिन जब से हमने एक त्रुटि हैंडलर डिस्ब्लर जोड़ा है, तब से यह फिर से त्रुटि दिखाने लगा है।

यहां याद रखने योग्य बातें

  • आगे और फिर त्रुटि GoTo 0 पर दोनों त्रुटि " त्रुटि हैंडलर Enabler " और " त्रुटि हैंडलर Disabler " के रूप में उपयोग करने की आवश्यकता है ।
  • इन दोनों कथनों के बीच कोड की कोई भी लाइन एक त्रुटि का सामना करती है जिसे अनदेखा किया जाएगा।
  • यदि ओन एरर GoTo 0 स्टेटमेंट है, तो सबप्रोडेक्ट एरर के निकलने के बाद हैंडलर को निष्क्रिय कर दिया जाएगा।

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