एक्सेल VBA त्रुटि हैंडलिंग
VBA में जब हम कोड के साथ काम करते हैं तो हम कई अलग-अलग प्रकार की त्रुटि का सामना कर सकते हैं और इन त्रुटियों का निवारण कैसे करें, इसे एरर हैंडलिंग के रूप में जाना जाता है, अब कुछ त्रुटियां हो सकती हैं, जो सिंटैक्स में बनाई गई हैं जो एक्सेल स्वयं इसे हाइलाइट करता है लेकिन जब कुछ त्रुटि होती है जो सीमा से बाहर है या कुछ और जो अस्तित्व में नहीं है, हमें उसी के लिए एक पॉप अप देता है, यह जानना महत्वपूर्ण है कि कोड में त्रुटि की पहचान करने के लिए कौन सी त्रुटि किस त्रुटि के लिए है।
एक्सेल VBA में, कोड के किसी भी सेट को निष्पादित करते समय, हमें कुछ प्रकार की त्रुटियां मिलती हैं। इन त्रुटियों में से कुछ सिंटैक्स त्रुटियाँ हैं; कुछ त्रुटियां हैं जो किसी भी प्रकार की नहीं हैं। सिंटैक्स त्रुटि तब होती है जब उपयोगकर्ता द्वारा एक्सेल द्वारा ही लाल रंग में हाइलाइट किया जाता है। लेकिन जब रन टाइम एरर का कोई अन्य प्रकार है, तो हम इसे कैसे संभालते हैं, और हम इसे कैसे पार करते हैं, इस लेख में हम इसे कवर करेंगे।
सिंटैक्स त्रुटियों के अलावा, अन्य रन टाइम त्रुटियों को कोड के किसी भी सेट को निष्पादित करते समय नियंत्रित करने की आवश्यकता होती है। सबसे पहले, मैं एक उदाहरण देता हूं कि अन्य रनटाइम त्रुटि कैसे होती है। नीचे दिए गए कोड पर एक नज़र डालें,
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_2.png.webp)
यह एक नमूना कोड है, जब निष्पादित किया जाता है, तो संदेशबॉक्स फ़ंक्शन में जो लिखा गया है वह वापस आ जाएगा। लेकिन जैसा कि हम देख सकते हैं कि कोड की दूसरी पंक्ति में 4/0 है, जो गणितीय शब्दों में संभव नहीं है, इसलिए यह एक रन टाइम त्रुटि लौटाएगा। हम उपरोक्त कोड निष्पादित करते हैं और हमें प्राप्त त्रुटि दिखाई देगी।
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_3.png.webp)
यह वह त्रुटि है जो हमें दिए गए कोड को निष्पादित करते समय मिलती है। अब हम इस एरर को कैसे हैंडल करते है यह एरर हैंडलिंग द्वारा किया जाता है।
त्रुटियों से निपटने के लिए दो तरीके हैं:
- त्रुटि गोटो पर, और
- त्रुटि फिर से शुरू पर
स्पष्टीकरण
जैसा कि ऊपर बताया गया है, हमें VBA में कई प्रकार की त्रुटियां मिलती हैं। कुछ सिंटैक्स हैं, और कुछ रन टाइम हैं। सिंटैक्स त्रुटियां पहले से ही लाल रंग में हाइलाइट की गई हैं, उदाहरण के लिए, नीचे स्क्रीनशॉट देखें,
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_4.png.webp)
जबकि दूसरा रन टाइम एरर है। मूल रूप से, एक्सेल निम्नलिखित तीन चीजें करेगा, या तो यह एक त्रुटि दिखाएगा या उस त्रुटि को अनदेखा करेगा, या यह निर्देशों का एक निश्चित सेट दिखाएगा। ऐसे कार्यों को करने के लिए, हमें निर्देश देने की आवश्यकता होती है, और इसे एरर हैंडलिंग कहा जाता है।
VBA कोड में त्रुटियों को कैसे संभालें?
उदाहरण 1
पहले उदाहरण के लिए, हम पहला कोड लेते हैं जो हमने प्रदर्शन के रूप में लिया था। उपरोक्त उदाहरण में, हमने देखा है कि कोड दूसरे msgbox फ़ंक्शन में रन टाइम त्रुटि देता है।
सबफ़ंक्शन खोलने के बाद निम्नलिखित कोड लिखें,
कोड:
उप नमूना () त्रुटि पर फिर से शुरू करें MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 समाप्ति उप
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_5.png.webp)
अब जब हम ऊपर दिए गए कोड को निष्पादित करते हैं, तो हम देखते हैं कि कोड की जिस लाइन में त्रुटि है, उसे निष्पादित नहीं किया गया है। एक्सेल उस रेखा को छोड़ देता है और अगली पंक्ति पर फिर से शुरू होता है।
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba.gif)
त्रुटि को संभालने के लिए एक और तरीका है VBA गोटो स्टेटमेंट। जब यह एक त्रुटि पाता है, तो हम एक गंतव्य के रूप में उत्कृष्टता प्रदान करते हैं। पिछली त्रुटि से निपटने के कोड के बजाय, हमने डाला, निम्नलिखित कोड लिखें,
कोड:
उप नमूना () त्रुटि पर GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 अंतिम उप
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_6.png.webp)
हम एक्सेल एज़ को एक गंतव्य के रूप में दे रहे हैं यदि यह एक त्रुटि पाता है। अब संदेशबॉक्स के बाद, नीचे एक और कोड लिखें,
कोड:
उप नमूना () त्रुटि पर GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 पूर्ण: बाहर निकलें उप
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_7.png.webp)
अब हमें गंतव्य एज़ को परिभाषित करने की आवश्यकता है क्योंकि जब कोड में कोई त्रुटि मिलती है तो उसे क्या करना चाहिए।
कोड:
उप नमूना () त्रुटि पर GoTo az MsgBox 4/2 MsgBox 4/0 MsgBox 4/1 पूर्ण: बाहर निकलें उप az: MsgBox "यह एक त्रुटि है" और Err.Description End Sub
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_8.png.webp)
अब जब हम इस कोड को चलाते हैं, तो हमें प्रदर्शित परिणाम दिखाई देता है।
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_2.gif)
यह पहला msg बॉक्स परिणाम है और जैसा कि हम जानते हैं कि हमारे पास हमारे कोड की अगली पंक्ति में एक त्रुटि है, चलो परिणाम देखते हैं कि एक्सेल क्या देगा।
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_9.png.webp)
कोड में उपर्युक्त ग़लती। हमें हमारे कोड में हुई त्रुटि को दिखाने में मदद करता है।
उदाहरण # 2
हमने सीखा है कि हमारे कोड में त्रुटियों को कैसे संभालना है। आइए हम त्रुटियों को कैसे प्रबंधित करें, इसका एक और उदाहरण देखें। निम्नलिखित कोड को हमारे दूसरे उदाहरण के रूप में देखें।
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_10.png.webp)
हमारे पास उदाहरण से कुछ समान त्रुटि है। त्रुटि पंक्ति d = i / b में है। अब हम ऊपर बताए गए दो तरीकों का उपयोग करके इन त्रुटियों को संभाल लेंगे।
सबफ़ंक्शन खोलने के बाद निम्नलिखित कोड लिखें,
कोड:
उप नमूना 2 () त्रुटि पर फिर से शुरू करें अगला bx मंद i
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_11.png.webp)
अब जब हम अपना कोड निष्पादित करते हैं, तो हम देख सकते हैं कि यह दूसरी पंक्ति को अनदेखा करता है और केवल C के लिए मान प्रदर्शित करता है।
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_12.png.webp)
उपरोक्त त्रुटि हैंडलर अगले के बाद फिर से शुरू किया गया था, और अब हम गो का उपयोग करेंगे जिसमें हम बताएंगे कि जब हम एक त्रुटि का सामना करने के लिए जाने के लिए एक गंतव्य को निकालते हैं। निम्नलिखित कोड लिखें,
कोड:
उप नमूना 2 () त्रुटि पर GoTo bx मंद i
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_13.png.webp)
Bx एक डेस्टिनेशन है जब यह msgbox D के नीचे दिए गए कोड को लिखने के बाद एक त्रुटि का सामना करता है,
कोड:
उप नमूना 2 () त्रुटि पर GoTo bx मंद i
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_14.png.webp)
अब हमें गंतव्य बीएक्स को परिभाषित करने की आवश्यकता है कि यह क्या करना चाहिए जब यह एक त्रुटि का सामना करता है, इसलिए निम्न कोड लिखिए,
कोड:
उप नमूना 2 () त्रुटि पर GoTo bx मंद i "यह एक और त्रुटि है" और Err.Description End Sub
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_15.png.webp)
अब जब हम कोड निष्पादित करते हैं, तो हम देख सकते हैं कि एक्सेल पहले हमें C के लिए मूल्य देता है।
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_3.gif)
अब एक अन्य चरण में, यह हमें वह संकेत देगा जो हमने प्रदान किया था जब यह एक त्रुटि का सामना करता है।
![](https://cdn.know-base.net/8048253/vba_error_handling_guide_to_error_handling_in_excel_vba_16.png.webp)
यह है कि हम एक्सेल VBA में सामान्य रनटाइम त्रुटियों को कैसे संभालते हैं।
याद रखने वाली चीज़ें
एरर हैंडलिंग के बारे में कुछ बातें हमें याद रखनी चाहिए:
- त्रुटि को फिर से शुरू करने पर, त्रुटि को अनदेखा करता है।
- जब यह एक त्रुटि का सामना करता है तो त्रुटि GoTo देता है।
- विवरण का उपयोग उपयोगकर्ता को होने वाली सटीक त्रुटि दिखाने के लिए किया जाता है।