त्रुटि फिर से शुरू करने पर अगला: एक्सेल वीबीए में त्रुटि को संभालना

  • इसे साझा करें
Hugh West

Microsoft Excel VBA में, त्रुटि प्रबंधन महत्वपूर्ण कार्यों में से एक है। यदि आप एक सांकेतिक शब्दों में बदलनेवाला हैं, तो आप एक आदर्श अनुप्रयोग बनाने के लिए त्रुटि से निपटने के महत्व को जानते हैं। किसी कथन में कोई भी गलती आपके VBA कोड को कई तरह से बाधित कर सकती है। इसलिए, VBA कोड निष्पादित करते समय आपको उन त्रुटियों को संभालने के लिए सतर्क रहना चाहिए। Excel में VBA कोड का उपयोग करते समय आप बहुत सी रन-टाइम त्रुटियों का सामना कर सकते हैं। उनमें से एक को हल करने के लिए, हम ऑन एरर रिज्यूमे नेक्स्ट स्टेटमेंट का उपयोग करते हैं।

इस ट्यूटोरियल में, आप एक्सेल में ऑन एरर रिज्यूमे नेक्स्ट स्टेटमेंट का उपयोग करना सीखेंगे। वीबीए। यह ट्यूटोरियल उपयुक्त उदाहरणों और उचित चित्रों के साथ प्रासंगिक होगा। तो, हमारे साथ बने रहें।

अभ्यास कार्यपुस्तिका डाउनलोड करें

त्रुटि फिर से शुरू करें पर VBA Next.xlsm

एक्सेल में त्रुटि प्रबंधन VBA

Microsoft Excel VBA के साथ काम करते समय, आपको अपनी उप-प्रक्रिया में बहुत सी त्रुटियों का सामना करना पड़ेगा। जब VBA किसी कथन को निष्पादित नहीं कर सकता है, तो यह एक रन-टाइम त्रुटि फेंकता है।

एक्सेल स्वचालित रूप से इन त्रुटियों से निपटता है, इसलिए जब कोई रन-टाइम त्रुटि सामने आती है, तो यह निम्न की तरह एक डिफ़ॉल्ट त्रुटि संदेश प्रदर्शित करता है:

अब, आप कुछ VBA कथनों के साथ इनसे विभिन्न प्रकार से निपट सकते हैं। मैं उन पर बाद के अनुभागों में चर्चा करूंगा।

और पढ़ें: #REF को कैसे ठीक करें! एक्सेल में त्रुटि (6 समाधान)

वीबीए में त्रुटि विवरण पर

रन टाइम त्रुटियों को संभालने के लिए, हम एक्सेल को ऑन एरर स्टेटमेंट के साथ निर्देश देते हैं। यह तय करता हैएक्सेल में नाम की त्रुटि (10 उदाहरण)

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

✎ ऑन एरर रिज्यूमे नेक्स्ट त्रुटियों को ठीक नहीं करता है। यह मूल रूप से त्रुटि को अनदेखा करता है और अगले कथन पर आगे बढ़ता है। जब हम ऑन एरर रिज्यूम नेक्स्ट स्टेटमेंट का उपयोग करते हैं, तो यह एरर ऑब्जेक्ट प्रॉपर्टीज को क्लियर करता है।

आप ऑन एरर रिज्यूमे नेक्स्ट को बंद कर सकते हैं। ऑन एरर GoTo 0 स्टेटमेंट को जोड़कर एक्सेल में अपने VBA कोड में स्टेटमेंट।

निष्कर्ष

निष्कर्ष निकालने के लिए, मुझे उम्मीद है कि इस ट्यूटोरियल ने आपको उपयोगी एक्सेल VBA में ऑन एरर रिज्यूमे नेक्स्ट का उपयोग करने के लिए ज्ञान। मेरा सुझाव है कि आप इन सभी निर्देशों को सीखें और अपने डेटासेट पर लागू करें। अभ्यास कार्यपुस्तिका डाउनलोड करें और इन्हें स्वयं आजमाएँ। साथ ही, टिप्पणी अनुभाग में प्रतिक्रिया देने के लिए स्वतंत्र महसूस करें। आपकी बहुमूल्य प्रतिक्रिया हमें इस तरह के ट्यूटोरियल बनाने के लिए प्रेरित करती है।

एक्सेल से संबंधित विभिन्न समस्याओं और समाधानों के लिए हमारी वेबसाइट Exceldemy.com को देखना न भूलें।

नए तरीके सीखते रहें और बढ़ते रहें!

हम किस तरह के ऑपरेशन तुरंत करना चाहते हैं। मूल रूप से, हम इस प्रकार की त्रुटि प्रबंधन द्वारा इन त्रुटियों को अक्षम करते हैं।

हम एक्सेल VBA में तीन प्रकार के ऑन एरर स्टेटमेंट (वाक्यविन्यास) का उपयोग करते हैं।

  • त्रुटि पर पंक्ति
  • त्रुटि पर फिर से शुरू करें
  • त्रुटि पर GoTo 0

जब आपको कोई त्रुटि मिलती है, तो ऑन एरर कमांड का उपयोग करें। क्योंकि यदि आप त्रुटि पर घोषणा का उपयोग नहीं करते हैं, तो वे रन-टाइम त्रुटियां विनाशकारी होंगी। यह एक एरर प्रॉम्प्ट दिखाएगा और निष्पादन को रोक देगा।

जब हम ऑन एरर स्टेटमेंट का उपयोग करते हैं, तो हम एक "सक्षम" एरर हैंडलर चालू करते हैं। "सक्रिय" त्रुटि हैंडलर एक सक्षम हैंडलर है जो त्रुटि प्रबंधन ऑपरेशन शुरू करता है। यदि त्रुटि हैंडलर शामिल होने पर कोई गलती होती है, तो वर्तमान विधि का त्रुटि हैंडलर त्रुटि को सहन नहीं कर सकता है। उसके बाद, कॉलिंग प्रक्रिया पर नियंत्रण वापस आ जाता है।

यदि कॉलिंग प्रक्रिया में एक सक्षम त्रुटि हैंडलर है, तो यह त्रुटि को प्रबंधित करने के लिए ट्रिगर हो जाता है। यदि आपके कॉलिंग सिस्टम का त्रुटि हैंडलर संगत रूप से जुड़ा हुआ है, तो नियंत्रण पहले की कॉलिंग प्रक्रियाओं के माध्यम से वापस देता है जब तक कि यह एक सक्षम लेकिन निष्क्रिय त्रुटि हैंडलर नहीं पाता। यदि इसे कोई निष्क्रिय सक्षम त्रुटि हैंडलर नहीं मिल रहा है, तो इसका मतलब है कि त्रुटि अपने होने वाले बिंदु पर विनाशकारी है।

हर बार त्रुटि हैंडलर कॉलिंग प्रक्रिया को अधिकार देता है, वह प्रक्रिया मौजूदा प्रक्रिया को विकसित करती है। निष्पादन में पुनरारंभ होता है फिर से शुरू करें कथन द्वारा चुने गए पल में वर्तमान प्रक्रिया जब एक त्रुटि हैंडलर किसी भी प्रक्रिया में त्रुटियों को संभालता है। 1>त्रुटि फिर से शुरू करने पर अगला विवरण VBA को त्रुटि वाले कोड की किसी भी पंक्ति को अनदेखा करने के लिए कहता है, और कोड की निम्नलिखित पंक्ति पर तुरंत आगे बढ़ता है। उसके बाद, एक्सेल वीबीए कोड उन पंक्तियों या पंक्तियों को छोड़ देंगे जिनमें उनमें त्रुटियां हैं, और कोड के निम्नलिखित अनुक्रम पर आगे बढ़ें। रन-टाइम त्रुटि को प्रेरित करने वाले कोड की लाइन का तुरंत पीछा करते हुए कमांड के साथ फिर से शुरू करें। यह कथन रन-टाइम त्रुटि होने पर भी निष्पादन को छोड़ने की अनुमति देता है। यदि आपको लगता है कि कोड की एक विशेष पंक्ति त्रुटि उत्पन्न कर सकती है, तो प्रक्रिया के भीतर किसी अन्य स्थान पर डालने के बजाय त्रुटि-प्रबंधन रूटीन को वहीं रखें। जब आपका कोड किसी अन्य प्रक्रिया को कॉल करता है, तो त्रुटि फिर से शुरू करें कथन निष्क्रिय हो जाता है। इसलिए, जब आपको उस रूटीन में मैचिंग एरर हैंडलिंग की आवश्यकता होती है, तो आपको प्रत्येक नामित पैटर्न में ऑन एरर रिज्यूमे नेक्स्ट कमांड चलाना होगा।

यह उचित है जब कोड की लाइन आपको छोड़ सकते हैं मैक्रो के फलते-फूलते चलने के लिए आवश्यक नहीं है। लेकिन याद रखें, यदि आप इसे गलत तरीके से उपयोग करते हैं तो यह हानिकारक हो सकता है क्योंकि यह अनपेक्षित परिणाम प्रदान कर सकता है।

याद रखें:

चालू त्रुटि फिर से शुरू करें अगला कथन नहीं हैरनटाइम त्रुटियों को ठीक करें। यह मूल रूप से उन त्रुटियों को अनदेखा करता है जहां आपका वीबी निष्पादन उस कथन से फिर से शुरू होगा जिसने रनटाइम त्रुटि उत्पन्न की है।

निम्न कोड पर एक नज़र डालें:

6970

हमने 5 को विभाजित करने का प्रयास किया 0 और 1 के साथ। चलो कोड चलाते हैं। यह निम्न आउटपुट दिखाएगा:

यह एक रन-टाइम त्रुटि उत्पन्न करता है। हम किसी संख्या को 0 से विभाजित नहीं कर सकते। जब आप कोड डीबग करते हैं, तो आप निम्नलिखित देखेंगे:

जब VB प्रोग्राम को कोई त्रुटि मिलती है, तो यह प्रक्रिया को तुरंत रोक देता है। यह निम्न पंक्ति को निष्पादित नहीं करता है।

अब, त्रुटि फिर से शुरू करें त्रुटि विवरण से पहले कथन को लागू करते हैं:

2348

कोड चलाने के बाद, आप निम्नलिखित देखें:

जैसा कि आप देख सकते हैं, VBA उस लाइन को अनदेखा करता है जो त्रुटि उत्पन्न करती है और तुरंत कोड की निम्न पंक्ति पर आगे बढ़ती है। इस तरह, आप एक्सेल वीबीए में त्रुटि को संभालने के लिए त्रुटि फिर से शुरू करें कथन का उपयोग कर सकते हैं।

वीबीए में 'त्रुटि फिर से शुरू करें' के उदाहरण

में निम्नलिखित अनुभागों में, मैं आपको ऑन एरर रिज्यूमे नेक्स्ट स्टेटमेंट के दो उदाहरण प्रदान करने जा रहा हूं जिसे आप VBA का उपयोग करके अपने एक्सेल वर्कशीट में लागू कर सकते हैं। मेरा सुझाव है कि आप इन सभी को सीखें और अपनी कार्यपुस्तिका में लागू करें। यह निश्चित रूप से आपके एक्सेल ज्ञान को बढ़ाएगा।

1. वर्कशीट को छिपाने के लिए 'ऑन एरर रिज्यूमे नेक्स्ट' स्टेटमेंट

अब, इस उदाहरण में, मैं आपको एक VBA कोड दिखाऊंगा जोआपकी सक्रिय कार्यपुस्तिका की सभी कार्यपत्रकों को छिपा देगा।

निम्नलिखित स्क्रीनशॉट पर एक नज़र डालें:

यहाँ, हमारे पास चार कार्यपत्रक हैं। हम निम्नलिखित VBA कोड का उपयोग करके उन सभी को छिपा देंगे:

5348

जब आप निम्न कोड निष्पादित करते हैं, तो आपको निम्न रन-टाइम त्रुटि दिखाई देगी:

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

4917

VBA कोड के निष्पादन को पूरा करने के बाद, आप निम्न आउटपुट देखेंगे:

अंत में, निष्पादन के बाद आपको कोई त्रुटि नहीं दिखाई देगी। इसलिए, हमारा ऑन एरर रिज्यूमे नेक्स्ट स्टेटमेंट VBA कोड में वास्तव में ठीक काम करता है।

2. वीबीए में 'ऑन एरर रिज्यूमे नेक्स्ट' के साथ वीलुकअप फंक्शन

इस उदाहरण में, मैं वीबीए में वीलुकअप फंक्शन का एक उदाहरण दिखाऊंगा। अब, इस VBA कोड में ऑन एरर रिज्यूमे नेक्स्ट स्टेटमेंट भी शामिल है।

निम्नलिखित स्क्रीनशॉट पर एक नज़र डालें:

यहाँ , आप कुछ लोगों के नाम और उनकी उम्र देख सकते हैं। निकटवर्ती तालिका में, हम व्यक्ति का नाम और आयु खोजने के लिए VLOOKUP का उपयोग करेंगे।

ऐसा करने के लिए निम्न कोड टाइप करें:

8993

अब, मैक्रो चलाएँ . आपको निम्न त्रुटि दिखाई देगी:

अब, यह एक रन-टाइम हैगलती। ऐसा क्यों होता है? डेटासेट पर फिर से नज़र डालें:

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

4953

VBA कोड चलाने के बाद, आप देखेंगे निम्नलिखित आउटपुट:

जैसा कि आप देख सकते हैं, ऑन एरर रिज्यूमे नेक्स्ट कमांड को लागू करके, हमने त्रुटि को नजरअंदाज कर दिया और बाकी व्यक्तियों को ढूंढ लिया। उम्र। हमारे VBA कोड में हारून और एम्मा का कोई डेटा नहीं मिला। यही कारण है कि इसने उन मानों को अनदेखा कर दिया और शेष मानों को एक्सेल वर्कशीट में वापस कर दिया। 3>

एक्सेल वीबीए के साथ 'ऑन एरर रिज्यूमे नेक्स्ट' को बंद करें

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

सामान्य उपयोग:

उप त्रुटि_हैंडलिंग()

त्रुटियों को अनदेखा करने के लिए

त्रुटि फिर से शुरू करने पर

// कोड की पंक्तियाँ

प्रतिएरर हैंडलिंग चालू करें

एरर गोटो 0 पर

// कोड की लाइन्स

एंड सब

इस पर एक नज़र डालें निम्नलिखित VBA कोड:

4214

हमने कोड का उपयोग पहले VLOOKUP फ़ंक्शन के लिए किया था। यहां आपको प्रदर्शित करने के लिए कोड का एक अतिरिक्त हिस्सा जोड़ा गया है। हमारा कोड VLOOKUP परफॉर्म करते समय एरर को इग्नोर कर देगा, लेकिन यह ऑन एरर GoTo 0 स्टेटमेंट

<के बाद एरर हैंडलिंग को सक्रिय कर देगा। 0> और पढ़ें: एक्सेल VBA: "ऑन एरर रिज्यूमे नेक्स्ट" को बंद करें

VBA 'ऑन एरर गोटो'

पहले मैंने चर्चा की थी ऑन एरर विधि का उपयोग करके त्रुटियों को संभालना। हमारा पूरा लेख ऑन एरर रिज्यूमे नेक्स्ट के बारे में था। अब, दो प्रकार के एरर हैंडलिंग भी हैं जिनके बारे में मैं निम्नलिखित अनुभागों में चर्चा करूंगा। 2>स्टेटमेंट एक्सेल की इनबिल्ट सेटिंग है अगर आपके कोड में एरर हैंडलर नहीं है। मूल रूप से इसका तात्पर्य यह है कि जब VBA को ऑन एरर GoTo 0 के साथ एक त्रुटि मिलती है, तो यह कोड को चलाना बंद कर देगा और अपने पारंपरिक त्रुटि संदेश बॉक्स को दिखाएगा।

ऑन एरर GoTo 0 बयान मूल रूप से वर्तमान प्रक्रिया में त्रुटि से निपटने को बंद कर देता है। यह लाइन 0 को एरर-हैंडलिंग कोड की शुरुआत के रूप में परिभाषित नहीं करता है, भले ही विधि में 0 नंबर वाली लाइन शामिल हो।

निम्नलिखित कोड पर एक नज़र डालें:

5355

हमारे पास है आपको यह कोड पहले ही दिखा चुका है। यह कोड मूल रूप से सभी वर्कशीट को छुपाता हैआपकी वर्तमान कार्यपुस्तिका में। अब, मेरे पास त्रुटि दिखाने के लिए ऑन एरर गोटू 0 के साथ कोड का एक अतिरिक्त टुकड़ा है। यदि आप कोड चलाते हैं, तो आप निम्नलिखित देखेंगे:

यह त्रुटि दिखाता है क्योंकि हमारे पास सक्रिय कार्यपुस्तिका में समान नाम वाली शीट नहीं हो सकती हैं।

2. VBA ऑन एरर GoTo लाइन

अब, आप एक्सेल को कोड के दूसरे सेगमेंट को चलाने का निर्देश भी दे सकते हैं, अगर यह ऑन एरर GoTo लाइन का उपयोग करके कोई त्रुटि पाता है। यह त्रुटि खोजने के बाद एक्सेल को कुछ निष्पादित करने के लिए कहता है।

लाइन तर्क कोई लाइन टैग या लाइन नंबर है। यदि हमारा कोड किसी रन-टाइम त्रुटि का कारण बनता है, तो यह लाइन पर चला जाएगा, जिससे निष्पादन में त्रुटि हैंडलर सक्रिय हो जाएगा। याद रखें, आपकी परिभाषित लाइन बिल्कुल ऑन एरर स्टेटमेंट की प्रक्रिया के अनुरूप होनी चाहिए; अन्यथा, यह संकलन त्रुटि उत्पन्न करेगा।

निम्नलिखित कोड पर एक नज़र डालें:

5471

आपने पिछले उदाहरण में कोड देखा था। जब हमने ऑन एरर GoTo 0 का उपयोग किया, तो यह एक एरर का कारण बना। लेकिन, यहां हमने इसे ऑन एरर गोटू लाइन स्टेटमेंट से बदल दिया।

अब, कोड रन करें और आप निम्नलिखित देखेंगे:

जैसा कि आप देख सकते हैं, यह हमें मानक त्रुटि संवाद बॉक्स नहीं दिखाता है। इसके बजाय, यह कस्टम मैसेज बॉक्स दिखाता है जिसे हमने error_handler सेगमेंट में बनाया था। जब एक्सेल को कोई त्रुटि मिलती है, तो यह error_handler सेगमेंट में जाता है और हमें संदेश बॉक्स दिखाता है।

हमने इस प्रक्रिया में Exit Sub का भी उपयोग किया।यदि “ VLOOKUP “ नाम की कोई शीट नहीं है, तो हमारा VBA कोड सक्रिय शीट का नाम बदल देगा। फिर, हमें यहां निष्पादन पूरा करना होगा क्योंकि हमें एरर हैंडलर पर ले जाने और संदेश बॉक्स प्रदर्शित करने की आवश्यकता नहीं है।

VBA 'ऑन एरर' नॉट वर्किंग इन एक्सेल

कभी-कभी, आप कितनी भी कोशिश कर लें, ऑन एरर मेथड काम नहीं करेगा। पहले, हमने एरर को हैंडल करने के लिए ऑन एरर मेथड लागू किया था। लेकिन, कभी-कभी यह त्रुटियाँ दिखाएगा भले ही आप ऑन एरर रिज्यूमे नेक्स्ट या ऑन एरर गोटो 0 का उपयोग करते हैं। आपके कोड में कई कारण हो सकते हैं जिन्हें आपको ठीक करना होगा। मैं आपको वह नहीं दिखाने जा रहा हूं।

VBA ' ऑन एरर' एक्सेल में काम नहीं करने का मूल कारण एक्सेल में "सभी त्रुटियों को तोड़ें" विकल्प को चालू करना है।<3

इसे हल करने के लिए इन चरणों का पालन करें:

📌 चरण

  • सबसे पहले, अपने कीबोर्ड पर Alt+F11 दबाएं VBA संपादक खोलें।
  • अब, टूल्स > विकल्प।

  • उसके बाद, सामान्य टैब पर विकल्प संवाद पर क्लिक करें box.

  • यहाँ, आप देख सकते हैं, “ Break on All Errors ” पहले से ही चेक किया हुआ है। यह मूल रूप से आपको त्रुटियों को संभालने से रोकता है।
  • इसे बदलने के लिए, " अनहैंडलेड त्रुटियों पर ब्रेक " विकल्प का चयन करें और ठीक पर क्लिक करें।
  • <14

    मुझे आशा है कि यह VBA "ऑन एरर" की एक्सेल में काम न करने की आपकी समस्या को ठीक कर देगा।

    और पढ़ें: कारण और सुधार

ह्यूग वेस्ट उद्योग में 10 से अधिक वर्षों के अनुभव के साथ एक अत्यधिक अनुभवी एक्सेल ट्रेनर और विश्लेषक है। उनके पास लेखा और वित्त में स्नातक की डिग्री और व्यवसाय प्रशासन में मास्टर डिग्री है। ह्यूग को पढ़ाने का शौक है और उन्होंने एक अद्वितीय शिक्षण दृष्टिकोण विकसित किया है जिसका पालन करना और समझना आसान है। एक्सेल के उनके विशेषज्ञ ज्ञान ने दुनिया भर में हजारों छात्रों और पेशेवरों को अपने कौशल में सुधार करने और अपने करियर में उत्कृष्टता हासिल करने में मदद की है। अपने ब्लॉग के माध्यम से, ह्यूग दुनिया के साथ अपने ज्ञान को साझा करता है, व्यक्तियों और व्यवसायों को उनकी पूरी क्षमता तक पहुंचने में मदद करने के लिए मुफ्त एक्सेल ट्यूटोरियल और ऑनलाइन प्रशिक्षण प्रदान करता है।