यह ट्यूटोरियल प्रदर्शित करेगा कि कैसे सुनिश्चित किया जाए कि आपका कोड चलाते समय VBA किसी त्रुटि को अनदेखा कर दे।
कभी-कभी जब आप वीबीए कोड बनाते हैं, तो आप वास्तव में चाहते हैं कि वीबीए त्रुटि होने पर कोड की एक पंक्ति को अनदेखा कर दे। यह वास्तव में काफी उपयोगी हो सकता है, उदाहरण के लिए, यदि आप एक शीट को हटाना चाहते हैं यदि वह मौजूद है, लेकिन कोड की उस पंक्ति को अनदेखा करें यदि शीट मौजूद नहीं है।
(वीबीए त्रुटियों के बारे में अधिक जानकारी के लिए हमारी त्रुटि प्रबंधन मार्गदर्शिका देखें)
त्रुटि पर फिर से शुरू करें अगला
एक प्रक्रिया में कोड की एक पंक्ति को अनदेखा करने के लिए, हम उपयोग करते हैं त्रुटि पर फिर से शुरू करें अगला बयान।
123456 | सब टेस्ट एरर इग्नोर ()त्रुटि पर फिर से शुरू करें अगलाActiveWorkbook.Sheets("Sheet4").selectएक्टिवशीट.डिलीट'यहां अधिक कोड'अंत उप |
ऊपर के उदाहरण में, an त्रुटि पर फिर से शुरू करें अगला बयान को प्रक्रिया के शीर्ष पर रखा गया है। कोड को फिर शीट 4 का चयन करने के लिए बनाया गया है और फिर इसे हटा दिया गया है।
हालांकि, के कारण त्रुटि पर फिर से शुरू करें अगला स्टेटमेंट, अगर कोड को शीट 4 नहीं मिलती है, तो यह सिर्फ अगली लाइन पर चलेगा, और जो भी सक्रिय शीट मिलेगी उसे हटा देगा।
यह काफी खतरनाक हो सकता है अगर यह केवल शीट 4 था जिसे आप हटाना चाहते थे, न कि केवल वह शीट जो सक्रिय है। इस त्रुटि को रोकने के लिए, हम एक चर को शीट 4 पर सेट कर सकते हैं और केवल उस शीट को हटा सकते हैं यदि वह मौजूद है।
1234567 | सब टेस्ट एरर इग्नोर ()वर्कशीट के रूप में डिम WSत्रुटि पर फिर से शुरू करें अगलासेट ws = ActiveWorkbook.Sheets("Sheet4")ws.हटाएं'यहां अधिक कोड'अंत उप |
अब जब कोड चलाया जाता है, तो केवल शीट 4 हटा दी जाएगी अगर शीट 4 वास्तव में मौजूद है। यदि शीट 4 मौजूद नहीं है, तो वीबीए त्रुटि को अनदेखा करेगा और आगे बढ़ेगा।
इसका एक अन्य उदाहरण यह है कि यदि आप लूप का उपयोग करके अपनी कार्यपुस्तिका से सभी शीट हटाना चाहते हैं। चूंकि एक्सेल वर्कबुक में कम से कम एक शीट होनी चाहिए, कोड एक को छोड़कर सभी शीट को हटा देगा।
123456 | सब डिलीटशीट्स ()वर्कशीट के रूप में डिम WSActiveWorkbook.Sheets में प्रत्येक ws के लिएws.हटाएंअगला wsअंत उप |
उपरोक्त कोड एक त्रुटि के साथ बंद हो जाएगा।
क्लिक करना डिबग हमें आपत्तिजनक लाइन के साथ कोड में ले जाएगा!
हालाँकि, जोड़ना त्रुटि पर फिर से शुरू करें अगला कोड की लाइन त्रुटि को रोकेगी और दिनचर्या हमेशा कार्यपुस्तिका में एक शीट छोड़ देगी।
12345678 | सब डिलीटशीट्स ()'त्रुटि रेखा यहाँ जोड़ेंत्रुटि पर फिर से शुरू करें अगलावर्कशीट के रूप में डिम WSActiveWorkbook.Sheets में प्रत्येक ws के लिएws.हटाएंअगला wsअंत उप |
त्रुटि गोटो 0 . पर
अक्सर यदि आप उपयोग करते हैं त्रुटि पर फिर से शुरू करें अगला किसी त्रुटि को अनदेखा करने के लिए, आप कोड में बाद में त्रुटि ट्रैपिंग चाहते हैं, या आप चाहते हैं कि भविष्य में कोई त्रुटि होने पर आपका कोड चलना बंद हो जाए। हम एरर हैंडलिंग को फिर से सेट कर सकते हैं ताकि ऑन एरर गोटो 0 लाइन जोड़कर कोड एक बार फिर से एरर पर ब्रेक लगाए।
12345678 | सब टेस्ट एरर इग्नोर ()वर्कशीट के रूप में डिम WSत्रुटि पर फिर से शुरू करें अगलासेट ws = ActiveWorkbook.Sheets("Sheet4")ws.हटाएंत्रुटि गोटो 0 . पर'यहां अधिक कोड'अंत उप |