VBA हटाओ शीट - VBA कोड का उपयोग करके वर्कशीट कैसे हटाएं?

एक्सेल VBA डिलीट शीट

VBA में शीट डिलीट करने के लिए हम एक वर्क्स वर्कशीट विधि को हटाते हैं। इस विधि को लागू करने के लिए सबसे पहले हमें यह पहचानना होगा कि हम शीट नाम से किस शीट को हटा रहे हैं। हमारे पास ऐसा करने के दो तरीके हैं पहले हम सीधे शीट 1 लिखते हैं। शीट और दूसरी विधि शीट (शीट 1) है। जेटी।

तो वाक्य रचना इस प्रकार है।

वर्कशीट ("वर्कशीट नाम")। हटाएं

या

चादरें ("शीट नाम")। हटाएं

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

VBA कोड का उपयोग करके एक्सेल शीट कैसे हटाएं?

उदाहरण # 1 - इसके नाम का उपयोग करके वर्कशीट हटाएं

मान लें कि आपके पास कई शीट हैं, और विशेष वर्कशीट को हटाने के लिए, हमें उसके नाम से वर्कशीट का उल्लेख करना होगा। उदाहरण के लिए, मेरे पास "बिक्री 2016", "बिक्री 2017" और "बिक्री 2018" नाम की 3 अलग-अलग शीट हैं।

अगर मैं " सेल्स 2017 " नाम की शीट को हटाना चाहता हूं , तो मुझे नीचे की तरह शीट के नाम का उल्लेख करना होगा।

कोड:

उप Delete_Example1 () वर्कशीट ("शीट 2017")। अंत उप

वर्कशीट के नाम का उल्लेख करने में समस्या सीधे हमें VBA की IntelliSense सूची देखने को नहीं मिलती है। वैसे भी विधि " हटाएं " का उल्लेख है

कोड:

उप Delete_Example1 () वर्कशीट ("शीट 2017")। डिलीट एंड सब

तो यह " बिक्री 2017 " नाम की शीट को हटा देगा ।

वर्कशीट को हटाते समय त्रुटि: यदि हम उस वर्कशीट को हटाने की कोशिश करते हैं जो मौजूद नहीं है या यदि हम वर्कशीट के नाम का गलत उल्लेख करते हैं, तो हमें VBA त्रुटि "सब्सक्रिप्शन आउट ऑफ रेंज" के रूप में मिलेगी

उपरोक्त में, मुझे "सब्सक्रिप्शन आउट ऑफ रेंज" त्रुटि मिली, क्योंकि मेरी कार्यपुस्तिका में "बिक्री 2017" नामक कोई शीट नाम नहीं है।

उदाहरण # 2 - चर के साथ इसके नाम से वर्कशीट हटाएं

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

चरण 1: सबसे पहले, वर्कशीट को वर्कशीट घोषित करें ।

कोड:

उप Delete_Example2 () डिम Ws के रूप में कार्यपत्रक समाप्ति उप

चरण 2: चूंकि वर्कशीट एक ऑब्जेक्ट वेरिएबल है, इसलिए हमें " सेट " शब्द का उपयोग करके वेरिएबल को विशिष्ट वर्कशीट में सेट करना होगा

कोड:

सब Delete_Example2 () डिम Ws के रूप में कार्यपत्रक सेट Ws = कार्यपत्रक ("बिक्री 2017") समाप्ति उप

अब चर "डब्ल्यूएस" का अर्थ "बिक्री 2017" नामक वर्कशीट से है।

चरण 3: अब, “ Ws ” वेरिएबल का उपयोग करते हुए , हम वर्कशीट की सभी इंटेलीजेंसी सूची तक पहुँच सकते हैं।

कोड:

सब Delete_Example2 () डिम Ws के रूप में कार्यपत्रक सेट Ws = कार्यपत्रक ("बिक्री 2017") Ws। अंत उप

चरण 4: IntelliSense सूची से, " हटाएं " विधि चुनें।

कोड:

सब Delete_Example2 () डिम Ws के रूप में कार्यपत्रक सेट Ws = कार्यपत्रक ("बिक्री 2017") WsDelete समाप्ति उप

चरों का उपयोग करते हुए, हम IntelliSense सूची तक पहुँच सकते हैं।

उदाहरण # 3 - सक्रिय वर्कशीट हटाएं

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

ActiveSheet.Delete

अभी, सक्रिय पत्रक "बिक्री 2017" है।

अगर मैं कोड चलाता हूं, तो यह सक्रिय शीट, यानी, "बिक्री 2017" को हटा देगा।

अब मैं “बिक्री 2016” का चयन करूंगा।

अब यह सक्रिय शीट को हटा देगा, अर्थात "बिक्री 2016"।

Like this, we can use the “Active Sheet” object to delete the worksheet.

Note: To use this method, we need to absolutely sure of what we are doing with the Active Sheet and which sheet is going to be an active sheet.

Example #4 - Delete More than One Worksheet

In our above examples, we have seen how to delete a single sheet, but what if we have multiple worksheets? Let’s say we want to delete 10 worksheets.

We cannot keep writing 10 lines of code to delete the worksheet, so we need to use loops to loop through the collection of worksheets and delete them.

The below code will loop through the worksheets and delete all the worksheets in the workbook.

Code:

Sub Delete_Example2() Dim Ws As Worksheet For Each Ws In ActiveWorkbook.Worksheets Ws.Delete Next Ws End Sub

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

यदि हम सक्रिय शीट को छोड़कर सभी वर्कशीट को हटाना चाहते हैं, तो हमें नीचे दिए गए कोड का उपयोग करना होगा।

कोड:

उप-डिलीट_Example2 () डिमांड Ws के रूप में वर्कशीट के लिए प्रत्येक W के लिए ActiveWorkbook.Worksheets यदि ActiveSheet.Name Ws.Name तो Ws.Delete का अंत यदि अगला Ws अंत है

इसी तरह, यदि हम किसी विशिष्ट वर्कशीट को नहीं हटाना चाहते हैं लेकिन अन्य सभी वर्कशीट को हटाना चाहते हैं, तो हम नीचे दिए गए कोड का उपयोग कर सकते हैं।

कोड:

उप-डिलीट_Example2 () डिमांड Ws के रूप में वर्कशीट को प्रत्येक W के लिए ActiveWorkbook.Worksheets यदि Ws.Name "Sales 2018" में दिया गया है, तो आप वर्कशीट का नाम बदल सकते हैं।

उपरोक्त कोड "बिक्री 2018" नामक वर्कशीट को छोड़कर सभी वर्कशीट को हटा देगा।

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