VBA कॉपी वर्कशीट - Worksheet कैसे उपयोग करें। कोपी?

एक्सेल VBA कॉपी वर्कशीट

कई बार हमें एक वर्कशीट से दूसरे वर्कशॉप में या एक ही वर्कशीट में सेल्स की एक खास रेंज कॉपी करनी पड़ सकती है। कुछ मामलों में, हमें पूरी वर्कशीट को नई वर्कशीट में कॉपी करने की आवश्यकता हो सकती है। आप कोशिकाओं की एक श्रृंखला की प्रतिलिपि बनाने से परिचित हो सकते हैं, लेकिन वीबीए का उपयोग करके पूरे कार्यपत्रक की नकल कैसे करें। इस लेख में, हम आपको VBA में किसी अन्य कार्यपुस्तिका में कार्यपत्रक की प्रतिलिपि बनाने के तरीके के बारे में विस्तृत विवरण देंगे।

कार्यपत्रक। VBA में कार्य पद्धति

सबसे पहले, वर्कशीट कॉपी पद्धति के सिंटैक्स पर एक नज़र डालें।

वर्कशीट ()। कॉपी (पहले, बाद)

कॉपी विधि में पहले और बाद में दो तर्क हैं; ये दोनों वैकल्पिक हैं।

  1. पहले: लक्षित कार्यपत्रक जिसे हम कॉपी कर रहे हैं। यदि आप इसे निर्दिष्ट करते हैं, तो आप आर्ग्युमेंट के बाद उपयोग नहीं कर सकते ।
  2. के बाद: लक्षित कार्यपत्रक जिसे हम कॉपी कर रहे हैं। यदि आप इसे निर्दिष्ट करते हैं, तो आप तर्क से पहले उपयोग नहीं कर सकते ।

चूंकि ये दोनों वैकल्पिक तर्क हैं यदि आपने इसे खाली छोड़ दिया है तो लक्षित कार्यपत्रक को एक नई कार्यपुस्तिका में कॉपी किया जाएगा, Microsoft Excel स्वचालित रूप से एक नई कार्यपुस्तिका बनाता है।

हम उदाहरण अनुभाग में अब उसी के उदाहरण देखेंगे।

VBA में कॉपी वर्कशीट के उदाहरण

उदाहरण 1

उदाहरण के लिए, "जनवरी" नाम की वर्कशीट में नीचे दिए गए डेटा को देखें।

हमारे पास "जनवरी" नाम की वर्कशीट में उपरोक्त डेटा है ।

  • इसलिए, हमें " शीट 1 " नाम की वर्कशीट के बाद उपरोक्त वर्कशीट को कॉपी करना होगा । सबसे पहले, वर्कशीट ऑब्जेक्ट का उपयोग करके वर्कशीट को देखें।

कोड:

सब वर्क्सशीट_कोपी_एक्सप्ल 1 () वर्क्सशीट ("जनवरी") एंड सब
  • अगला, " कॉपी " विधि दर्ज करें ।

कोड:

सब वर्क्सशीट_कोपी_एक्सप्ल 1 () वर्क्सशीट ("जनवरी")। कॉपी एंड सब
  • जैसा कि आप ऊपर देख सकते हैं कि टाइपिंग शुरू करते समय हमें वर्कशीट ऑब्जेक्ट के लिए IntelliSense सूची देखने को नहीं मिलती है, यह शुरुआती लोगों के लिए महत्वपूर्ण समस्याओं में से एक है यदि वे सीधे वर्क्स ऑब्जेक्ट का उपयोग करते हैं, लेकिन इसे चर का उपयोग करके समाप्त किया जा सकता है, इसलिए परिभाषित करें चर " वर्कशीट " के रूप में।

कोड:

उप कार्यपत्रक_कॉपी_प्रस्तुति 1 () कार्य की समाप्ति उप के रूप में डिम डब्ल्यूएस
  • अब इस चर के लिए " जनवरी " वर्कशीट का संदर्भ सेट करें ।

कोड:

उप कार्यपत्रक_कोपी_आदर्श 1 () कार्यपत्रक सेट Ws = कार्यपत्रक के रूप में डिम डब्ल्यूएस ("जनवरी") अंतिम उप
  • तो, अब चर " डब्ल्यूएस " का उपयोग करके हम आसानी से " जनवरी " नाम की वर्कशीट का उल्लेख कर सकते हैं । तो चर नाम " डब्ल्यूएस " दर्ज करें और " कॉपी " विधि चुनें।

वहाँ हम जाते हैं हम IntelliSense सूची को वर्कशीट ऑब्जेक्ट्स के सभी गुणों और विधियों को दिखाते हुए, चर घोषणा के लिए धन्यवाद देख सकते हैं।

  • " कॉपी " विधि चुनें , और हम " कॉपी " विधि के तर्क देख सकते हैं ।
  • चूंकि हमें वर्कशीट " शीट 1 " के बाद वर्कशीट की प्रतिलिपि बनाने की आवश्यकता है , इसलिए नीचे दिए गए तर्क नाम दर्ज करके पहले " बाद " तर्क पर पहुंचें ।

बाद के बाद से हम साथ तर्क नाम का इस्तेमाल किया है तर्क हाइलाइट किया गया है " परिभाषा से बराबर प्रतीक" (: =)

  • अब " शीट " ऑब्जेक्ट का उपयोग करके शीट नाम दर्ज करें ।

कोड:

सब वर्कशीट_कोपी_एक्सप्ल 1 () डिम डब्ल्यूएस एज़ वर्कशीट सेट Ws = वर्कशीट ("जनवरी") Ws.Copy के बाद: = शीट्स ("शीट 1") एंड सब
  • हमने कर लिया। यह वर्कशीट “ Sheet1 ” के बाद वर्कशीट “ जनवरी ” की कॉपी करेगा ।

वहां आप जाते हैं हमने जनवरी शीट को "शीट 1" के दाईं ओर कॉपी किया है। यहां डिफ़ॉल्ट चीजों में से एक है वर्कशीट का नाम ब्रैकेट में वर्कशीट की संख्यात्मक गणना के साथ कॉपी की गई शीट के समान है, इस मामले में, यह "(2)" है।

  • वर्कशीट का नाम बदलने के लिए, नीचे दिए गए कोड को उपरोक्त कोड में जोड़ें।
  • So the overall code is below.

Code:

Sub Worksheet_Copy_Example1() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets("Sheet1") ActiveSheet.Name = “New Copied Sheet” End Sub
  • Now run the code and see what happens.

Example #2

Similarly, if you want to copy the worksheet “Sheet1” before the worksheet “January” uses the below code.

Code:

Sub Worksheet_Copy_Example2() Dim Ws As Worksheet Set Ws = Worksheets("Sheet1") Ws.Copy Before:=Sheets("January") ActiveSheet.Name = "New Sheet1" End Sub
  • So this will create a sheet-like the below.

Example #3

Similarly, if you want to copy the worksheet after the last worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example3() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Last Sheet" End Sub

Output:

The only change we made is we have used “Sheets. Count” method to count how many sheets are there in the workbook.

Example #4

Similarly, if you want to copy the worksheet before the first worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example4() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(1) ActiveSheet.Name = "First Sheet" End Sub

Output:

In this case, we have used “Sheets(1)” so this will place the worksheet copied before the first worksheet of the workbook.

Things to Remember

  • Suppose you don’t use either Before & After argument of the Worksheet. Copy worksheets will be copied to the new workbook altogether.
  • डिफ़ॉल्ट कॉपी की गई वर्कशीट का नाम उस कॉपी किए गए वर्कशीट की गिनती के बाद होगा।

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