VBA ऑन एरर GoTo - VBA में त्रुटि विवरण के प्रकार

एक्सेल वीबीए ऑन एरर गोटो

त्रुटियाँ किसी भी कोडिंग भाषा का हिस्सा और पार्सल हैं, और VBA मैक्रोज़ इससे अलग नहीं हैं। मेरी राय में, यह पता लगाना कि त्रुटि क्यों होती है 90% काम किया जाता है, और 10% उस त्रुटि को ठीक करने में निहित है। प्रत्येक कोडिंग भाषा में, कोडर अपने कोडिंग में त्रुटियों को संभालने के अपने तरीके का उपयोग करते हैं, इसलिए हम भी VBA कोडिंग में उपयोग करते हैं। अक्सर बार, हमें त्रुटि को अनदेखा करने की आवश्यकता होती है, या अक्सर हम त्रुटि होने पर विशिष्ट चीजों पर जाना चाहते हैं। "त्रुटि पर" वह कथन है जिसे त्रुटियों को संभालने के लिए हमें VBA में उपयोग करने की आवश्यकता है।

इस कथन में तीन प्रकार के कथन हैं, और नीचे दी गई सूची है।

  1. त्रुटि गोटो पर 0
  2. त्रुटि गोटो पर (लेबल)
  3. त्रुटि फिर से शुरू पर

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

VBA ऑन एरर स्टेटमेंट का उपयोग कैसे करें?

# 1 - त्रुटि फिर से शुरू पर

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

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

कोड:

उप On_Error_Resume_Next () कार्यपत्रक ("Ws 1")। चयन सीमा ("A1")। मान = "त्रुटि परीक्षण" कार्यपत्रक ("Ws 2")। श्रेणी चुनें ("A1")। मान = "त्रुटि परीक्षण" कार्यपत्रक (। "Ws 3")। चयन रेंज ("A1")। मान = "त्रुटि परीक्षण" कार्यपत्रक ("W 4 4")। चयन रेंज ("A1")। मूल्य = "त्रुटि परीक्षण" अंतिम उप।

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

  • मैं कोड चलाऊंगा और देखूंगा कि क्या होता है।
  • हमें "सब्सक्रिप्शन आउट ऑफ़ रेंज" त्रुटि मिली, "डीबग" पर क्लिक करके देखें कि हमें किस लाइन में त्रुटि मिली।
  • तो लाइन में "वर्कशीट (" डब्ल्यूएस 3 ")। चयन करें," हमें एक त्रुटि मिली। ऐसा इसलिए है, क्योंकि हमारी कार्यपुस्तिका में, "Ws 3" नाम की कोई वर्कशीट नहीं है, इसलिए त्रुटि हुई।

ऐसे मामलों में, हम त्रुटि को अनदेखा करना चाहते हैं और कोड के निष्पादन को अगली पंक्ति में फिर से शुरू कर सकते हैं। यह वह जगह है जहाँ हमारे "त्रुटि को फिर से शुरू करें" त्रुटि हैंडलर तस्वीर में आता है।

  • हमें बस इतना करना है कि मैक्रो की शुरुआत में "ऑन एरर रिज्यूमे नेक्स्ट" लाइन को जोड़ना है।

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

# 2 - त्रुटि GoTo 0 पर

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

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

यदि कोड का कोई विशिष्ट सेट कोड के उस ब्लॉक में कोई त्रुटि देता है, तो केवल हमें कोड के अन्य भागों में त्रुटियों को अनदेखा करना होगा। हम त्रुटि को अनदेखा नहीं करना चाहते हैं।

  • नीचे दिए गए चित्र पर "त्रुटि GoTo 0" कथन के उपयोग के लिए देखें।

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

# 3 - त्रुटि GoTo लेबल पर

हमने देखा है कि त्रुटि को अनदेखा कैसे करें और त्रुटि सूचना को वापस कैसे सक्षम करें। अब इस पद्धति का उपयोग करके, हम कोड की एक विशिष्ट रेखा पर जा सकते हैं।

इस पद्धति में, "लेबल" का अर्थ है कि हम इस लेबल को कोई भी नाम दे सकते हैं, और उसी लेबल को कोड की आवश्यक रेखा पर भी दिया जाना चाहिए।

उदाहरण के लिए, उपरोक्त उदाहरण से समान कोड देखें।

अब F8 फंक्शन की दबाकर कोड लाइन को लाइन से निष्पादित करते हैं।

अब मैक्रो त्रुटि हैंडलर स्टेटमेंट को पढ़ेगा; F8 कुंजी दबाएं पहले 2 वर्कशीट कोड निष्पादित करें।

अब मैक्रो तीसरे वर्कशीट कोड को निष्पादित करने वाला है, जो वर्कबुक में नहीं है, F8 कुंजी दबाएं, और देखें कि क्या होता है।

क्योंकि मैक्रो को कोड की निचली पंक्ति में एक त्रुटि का सामना करना पड़ा, यह त्रुटि हैंडलर लेबल "ErrorMessage" में कूद गया है , जिसे "त्रुटि गेटो (लेबल)" विवरण के माध्यम से वर्णित किया गया था।

अब मैसेज बॉक्स में मैसेज दिखाई देगा "एरर ओकेवेटेड एंड एक्जिटिंग मैक्रो।"

याद रखने वाली चीज़ें

  • Vba ऑन एरर GoTo 0 एक बार फिर से एरर नोटिफिकेशन को सक्षम करेगा, इसलिए एरर हैंडलर की आपूर्ति करने के बाद इसे जोड़ना न भूलें।
  • आपको पूरी तरह से सुनिश्चित होना चाहिए कि आप कोड के किस भाग में त्रुटि को अनदेखा करना चाहते हैं, इसलिए कोड के उस ब्लॉक के लिए केवल त्रुटि हैंडलर संलग्न करें।

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