- वर्कशीट को नई वर्कबुक में कॉपी करें
- नई कार्यपुस्तिका में एकाधिक पत्रक कॉपी करें
- समान कार्यपुस्तिका के भीतर शीट कॉपी करें
- शीट ले जाएँ
- कॉपी और नेम शीट
- वर्कशीट को दूसरी वर्कबुक में कॉपी करें
- वर्कशीट को बंद वर्कबुक में कॉपी करें
- किसी अन्य कार्यपुस्तिका से शीट को खोले बिना कॉपी करें
- एक्सेल शीट को कई बार डुप्लिकेट करें
यह ट्यूटोरियल कवर करेगा कि वीबीए का उपयोग करके शीट या वर्कशीट को कैसे कॉपी किया जाए।
वर्कशीट को नई वर्कबुक में कॉपी करें
वर्कशीट को नई वर्कबुक में कॉपी करने के लिए:
1 | शीट्स ("शीट 1")। कॉपी करें |
ActiveSheet को नई कार्यपुस्तिका में कॉपी करें
एक्टिवशीट को एक नई कार्यपुस्तिका में कॉपी करने के लिए:
1 | एक्टिवशीट.कॉपी |
नई कार्यपुस्तिका में एकाधिक पत्रक कॉपी करें
एक नई कार्यपुस्तिका में एकाधिक पत्रक कॉपी करने के लिए:
1 | ActiveWindow.SelectedSheets.Copy |
समान कार्यपुस्तिका के भीतर शीट कॉपी करें
हमने आपको सबसे सरल कॉपी शीट्स उदाहरण दिखाकर शुरुआत की: शीट्स को एक नई वर्कबुक में कॉपी करना। नीचे दिए गए ये उदाहरण आपको दिखाएंगे कि एक ही कार्यपुस्तिका में एक पत्रक को कैसे कॉपी किया जाए। वर्कबुक में शीट कॉपी करते समय, आपको एक स्थान निर्दिष्ट करना होगा। किसी स्थान को निर्दिष्ट करने के लिए, आप VBA को वर्कशीट को किसी अन्य वर्कशीट से पहले या बाद में स्थानांतरित करने के लिए कहेंगे।
दूसरी शीट से पहले कॉपी शीट
यहां हम शीट 2 से पहले शीट को कॉपी और पेस्ट करने के लिए निर्दिष्ट करेंगे
1 | शीट्स ("शीट 1")। पहले कॉपी करें: = शीट्स ("शीट 2") |
पहली शीट से पहले कॉपी शीट
शीट का नाम निर्दिष्ट करने के बजाय, आप शीट की स्थिति भी निर्दिष्ट कर सकते हैं। यहां हम वर्कबुक में पहली शीट से पहले एक शीट को कॉपी और पेस्ट कर रहे हैं।
1 | शीट्स ("शीट 1")। पहले कॉपी करें: = शीट्स(1) |
नई बनाई गई शीट अब कार्यपुस्तिका में पहली शीट होगी।
अंतिम शीट के बाद कॉपी शीट
वीबीए को दूसरी शीट के बाद शीट चिपकाने के लिए कहने के लिए आफ्टर प्रॉपर्टी का उपयोग करें। यहां हम वर्कबुक में आखिरी शीट के बाद एक शीट को कॉपी और पेस्ट करेंगे:
1 | शीट्स ("शीट 1")। इसके बाद कॉपी करें: = शीट्स (शीट्स। गणना) |
ध्यान दें कि हमने कार्यपुस्तिका में शीट्स की संख्या गिनने के लिए शीट्स.काउंट का उपयोग किया है।
शीट ले जाएँ
आप समान सिंटैक्स का उपयोग करके किसी कार्यपुस्तिका में शीट को स्थानांतरित भी कर सकते हैं। यह कोड पत्रक1 को कार्यपुस्तिका के अंत में ले जाएगा:
1 | शीट्स ("शीट 1")। इसके बाद ले जाएं: = शीट्स (शीट्स। गणना) |
कॉपी और नेम शीट
शीट को कॉपी और पेस्ट करने के बाद, नई बनाई गई शीट एक्टिवशीट बन जाती है। तो हमारी नई शीट का नाम बदलने के लिए, बस ActiveSheet.Name का उपयोग करें:
123456 | उप कॉपीशीटनाम 1 ()शीट्स ("शीट 1")। इसके बाद कॉपी करें: = शीट्स (शीट्स। गणना)ActiveSheet.Name = "लास्टशीट"अंत उप |
यदि शीट का नाम पहले से मौजूद है, तो उपरोक्त कोड एक त्रुटि उत्पन्न करेगा। इसके बजाय हम वीबीए को शीट के नामकरण को अनदेखा करने और बाकी प्रक्रिया के साथ आगे बढ़ने के लिए कहने के लिए "ऑन एरर रिज्यूमे नेक्स्ट" का उपयोग कर सकते हैं:
12345678 | उप कॉपीशीटनाम २ ()शीट्स ("शीट 1")। इसके बाद कॉपी करें: = शीट्स (शीट्स। गणना)त्रुटि पर फिर से शुरू करें अगलाActiveSheet.Name = "लास्टशीट"त्रुटि गोटो 0 . परअंत उप |
या हमारे रेंजएक्सिस्ट्स फ़ंक्शन का उपयोग यह जांचने के लिए करें कि शीट की प्रतिलिपि बनाने का प्रयास करने से पहले शीट का नाम पहले से मौजूद है या नहीं:
123456789101112131415161718 | उप कॉपीशीटनाम3 ()अगर RangeExists("LastSheet") तोMsgBox "शीट पहले से मौजूद है।"अन्यथाशीट्स ("शीट 1")। इसके बाद कॉपी करें: = शीट्स (शीट्स। गणना)ActiveSheet.Name = "लास्टशीट"अगर अंतअंत उपफ़ंक्शन रेंज एक्ज़िस्ट्स (स्ट्रिंग के रूप में व्हाट्सएप, स्ट्रिंग के रूप में वैकल्पिक ByVal WhatRange = "A1") बूलियन के रूप मेंरेंज के रूप में मंद परीक्षणत्रुटि पर फिर से शुरू करें अगलापरीक्षण सेट करें = ActiveWorkbook.Sheets(WhatSheet).Range(WhatRange)RangeExists = Err.Number = 0त्रुटि गोटो 0 . परअंत समारोह |
सेल वैल्यू के आधार पर कॉपी और नेम शीट
आप सेल वैल्यू के आधार पर शीट को कॉपी और नाम देना भी चाह सकते हैं। यह कोड A1 . में सेल मान के आधार पर वर्कशीट को नाम देगा
12345678 | उप CopySheetRenameFromCell ()शीट्स ("शीट 1")। इसके बाद कॉपी करें: = शीट्स (शीट्स। गणना)त्रुटि पर फिर से शुरू करें अगलाActiveSheet.Name = रेंज ("A1")। मानत्रुटि गोटो 0 . परअंत उप |
वर्कशीट को दूसरी वर्कबुक में कॉपी करें
अब तक हमने कार्यपुस्तिका में पत्रक की प्रतिलिपि बनाने पर काम किया है। अब हम अन्य कार्यपुस्तिकाओं में शीट को कॉपी और पेस्ट करने के उदाहरणों को कवर करेंगे। यह कोड एक शीट को दूसरी कार्यपुस्तिका की शुरुआत में कॉपी करेगा:
1 | शीट्स ("शीट 1")। पहले कॉपी करें: = वर्कबुक ("उदाहरण। xlsm")। शीट्स (1) |
यह एक वर्कशीट को दूसरी वर्कबुक के अंत में कॉपी कर देगा।
1 | शीट्स ("शीट 1")। इसके बाद कॉपी करें: = वर्कबुक ("उदाहरण। xlsm")। शीट्स (वर्कबुक ("उदाहरण। xlsm")। शीट्स। गणना) |
नोटिस हमने बदल दिया 1 साथ कार्यपुस्तिकाएं ("उदाहरण। xlsm")। पत्रक। गणना: अंतिम वर्कशीट प्राप्त करने के लिए।
वर्कशीट को बंद वर्कबुक में कॉपी करें
आप वर्कशीट को बंद वर्कबुक में कॉपी करना भी चाह सकते हैं। यह कोड एक बंद कार्यपुस्तिका को खोलेगा ताकि आप उसमें एक पत्रक की प्रतिलिपि बना सकें।
123456789 | उप कॉपीशीट ToClosedWB ()एप्लिकेशन.स्क्रीनअपडेटिंग = गलतक्लोजबुक सेट करें = वर्कबुक। ओपन ("डी: \ ड्रॉपबॉक्स \ एक्सेल \ लेख \ example.xlsm")शीट्स ("शीट 1")। पहले कॉपी करें: = बंद बुक। शीट्स (1)CloseBook.Close SaveChanges:=Trueएप्लिकेशन.स्क्रीनअपडेटिंग = सहीअंत उप |
किसी अन्य कार्यपुस्तिका से शीट को खोले बिना कॉपी करें
इसके विपरीत, यह कोड आपको कार्यपुस्तिका को मैन्युअल रूप से खोलने की आवश्यकता के बिना एक बंद कार्यपुस्तिका से वर्कशीट की प्रतिलिपि बना देगा।
123456789 | उप कॉपीशीटफ्रॉमक्लोज्डडब्लूबी ()एप्लिकेशन.स्क्रीनअपडेटिंग = गलतक्लोजबुक सेट करें = वर्कबुक। ओपन ("डी: \ ड्रॉपबॉक्स \ एक्सेल \ लेख \ example.xlsm")CloseBook.Sheets("Sheet1").Copy पहले:=ThisWorkbook.Sheets(1)CloseBook.Close SaveChanges:=Falseएप्लिकेशन.स्क्रीनअपडेटिंग = सहीअंत उप |
ध्यान दें कि इन दोनों उदाहरणों में हमने ScreenUpdating को अक्षम कर दिया है ताकि प्रक्रिया पृष्ठभूमि में चले।
एक्सेल शीट को कई बार डुप्लिकेट करें
आप लूप का उपयोग करके एक्सेल शीट को कई बार डुप्लिकेट भी कर सकते हैं।
1234567891011121314 | उप कॉपीशीट एकाधिक टाइम्स ()डिम एन अस इंटीजरडिम आई अस इंटीजरत्रुटि पर फिर से शुरू करें अगलाn = इनपुटबॉक्स ("आप कितनी प्रतियां बनाना चाहते हैं?")यदि n > 0 तबमैं = 1 से n . के लिएActiveSheet.Copy के बाद:=ActiveWorkbook.Sheets(Worksheets.Count)अगलाअगर अंतअंत उप |