एक्सेल में वीबीए के साथ शीट को डुप्लिकेट कैसे करें

  • इसे साझा करें
Michael Brown

ट्यूटोरियल एक्सेल में डुप्लिकेट शीट्स के लिए मैक्रोज़ का एक संग्रह प्रदान करता है: सेल वैल्यू के आधार पर कॉपी और नाम बदलें, कई शीट कॉपी करें, एक सक्रिय वर्कशीट को बिना खोले किसी अन्य फ़ाइल में कॉपी करें, और बहुत कुछ। <3

एक्सेल में मैन्युअल रूप से शीट कॉपी करना काफी तेज और सीधा है... अगर सिर्फ एक या दो बार किया जाए। कई शीटों की कई बार नकल करना उबाऊ और समय लेने वाला है। इस पृष्ठ पर, आपको इस कार्य को स्वचालित करने के लिए कुछ मुट्ठी भर उपयोगी मैक्रोज़ मिलेंगे। बिल्कुल वही जो इसके नाम से पता चलता है - सक्रिय शीट को एक नई कार्यपुस्तिका में कॉपी करता है। सक्रिय कार्यपुस्तिका से एक नई शीट में कई शीटों की प्रतिलिपि बनाएँ, रुचि के सभी कार्यपत्रकों का चयन करें और इस मैक्रो को चलाएँ:

सार्वजनिक उप कॉपी-चयनित पत्रक () सक्रियविंडो। 7>

कॉपी की गई शीट को आप कहां सम्मिलित करना चाहते हैं इसके आधार पर, निम्न मैक्रोज़ में से किसी एक का उपयोग करें। गंतव्य फ़ाइल में अन्य सभी कार्यपत्रक, Book1 इस उदाहरण में। किसी अन्य फ़ाइल में कॉपी करने के लिए, "Book1.xlsx" को अपनी लक्षित कार्यपुस्तिका के पूरे नाम से बदलें।

सार्वजनिक उपCopySheetToBeginningAnotherWorkbook() activeSheet.Copy before:=Workbooks("Book1.xlsx") .Sheets(1) End Sub

कॉपी शीट को दूसरी वर्कबुक के अंत में

कोड का यह टुकड़ा सक्रिय वर्कशीट को डुप्लिकेट करता है और प्रतिलिपि को Book1 के अंत में रखता है। दोबारा, कृपया अपनी गंतव्य कार्यपुस्तिका के नाम के साथ "Book1.xlsx" को प्रतिस्थापित करना याद रखें। " .Worksheets.Count) एंड सब

नोट। मैक्रोज़ के काम करने के लिए, लक्षित वर्कबुक को आपकी हार्ड ड्राइव या नेटवर्क पर सहेजा जाना चाहिए। आप एक ListBox नियंत्रण ( नाम ListBox1 ) और दो बटनों के साथ एक UserForm (नाम UserForm1 ) बना सकते हैं:

<3

अगला, फॉर्म पर डबल-क्लिक करें और कोड विंडो में नीचे दिए गए कोड को पेस्ट करें:

Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear Forप्रत्येक wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) नेक्स्ट एंड सब प्राइवेट सब कमांडबटन1_Click() If ListBox1.ListIndex > -1 फिर SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Hide End Sub

UserForm के साथ, आप निम्न में से किसी एक का उपयोग कर सकते हैं कॉपी करने के लिए मैक्रोज़आपकी पसंद की कार्यपुस्तिका के लिए सक्रिय पत्रक।

चयनित कार्यपुस्तिका की शुरुआत में शीट की प्रतिलिपि करें :

सार्वजनिक उप कॉपीशीटटूबिगिनिंगअनदरवर्कबुक() Load UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook " " ) फिर ActiveSheet.Copy before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End if Unload UserForm1 End Sub

कॉपी शीट चयनित वर्कबुक के अंत :

Public Sub CopySheetToEndAnotherWorkbook() Load UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "") फिर ActiveSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook).Sheets( _ Workbooks(UserForm1.SelectedWorkbook). _ Worksheets.Count) अंत अगर UserForm1 को अनलोड करें एंड सब

जब एक्सेल में चलाया जाता है, तो मैक्रो आपको वर्तमान में खोली गई सभी कार्यपुस्तिकाओं की एक सूची दिखाएगा। आप आवश्यक एक का चयन करें और ओके पर क्लिक करें:

एक्सेल मैक्रो को कॉपी शीट और नाम बदलने के लिए

जब आप एक्सेल में एक शीट कॉपी करते हैं, तो प्रतिकृति को एक दिया जाता है डिफ़ॉल्ट प्रारूप में नाम जैसे शीट1 (2) । निम्नलिखित मैक्रो आपको डिफ़ॉल्ट नाम को मैन्युअल रूप से बदलने की परेशानी से बचा सकते हैं।

यह कोड सक्रिय वर्कशीट को डुप्लिकेट करता है, कॉपी को "टेस्ट शीट" के रूप में नाम देता है (आप इसे अपनी पसंद के किसी अन्य नाम से बदलने के लिए स्वतंत्र हैं) , और प्रतिलिपि की गई शीट को वर्तमान कार्यपुस्तिका के अंत में रखता है।

सार्वजनिक उप कॉपीशीट और नाम पूर्व परिभाषित () सक्रियशीट।"टेस्ट शीट" एंड सब

यूज़र को कॉपी किए गए शीट के लिए नाम निर्दिष्ट करने की अनुमति देने के लिए , इस कोड का उपयोग करें:

Public Sub CopySheetAndRename() Dim newName As String On Error Resume Next newName = InputBox( "कॉपी किए गए वर्कशीट के लिए नाम दर्ज करें") यदि newName "" फिर activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End If End Sub

चलने पर, मैक्रो निम्नलिखित इनपुट बॉक्स प्रदर्शित करता है, जिसमें आप वांछित नाम टाइप करते हैं और ओके दबाते हैं:

सेल वैल्यू के आधार पर कॉपी शीट और नाम बदलने के लिए एक्सेल मैक्रो

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

सबसे पेचीदा हिस्सा यह होगा कि आपके उपयोगकर्ता चलने से पहले हमेशा सही सेल का चयन करें मैक्रो :)

सार्वजनिक उप कॉपीशीट और नाम बदलें बायसेल() मंद नया नाम स्ट्रिंग पर त्रुटि के रूप में फिर से शुरू करें अगला नया नाम = इनपुटबॉक्स ("कॉपी किए गए वर्कशीट के लिए नाम दर्ज करें", "कॉपी वर्कशीट", ActiveCell.Value) यदि नया नाम "" फिर सक्रियशीट। कॉपी आफ्टर:=वर्कशीट्स(शीट्स.काउंट) ऑन एरर रिज्यूमे नेक्स्ट एक्टिवशीट.नाम = न्यूनेम एंड इफ एंड सब

वैकल्पिक रूप से, आप पते को हार्डकोड कर सकते हैंवह सेल जिसके द्वारा प्रति का नाम दिया जाना चाहिए, नीचे दिए गए कोड में सेल A1। किसी अन्य सेल के आधार पर कॉपी की गई वर्कशीट को नाम देने के लिए, A1 को उपयुक्त सेल संदर्भ से बदलें। ("A1")। वैल्यू "" फिर एरर पर फिर से शुरू करें अगला एक्टिवशीट। 0> यह मैक्रो सक्रिय शीट को एक बंद कार्यपुस्तिका के अंत में कॉपी करता है। अन्य कार्यपुस्तिका का नाम कोड में निर्दिष्ट नहीं है - मैक्रो मानक विंडोज एक्सप्लोरर विंडो खोलेगा और आपको कोई भी गंतव्य फ़ाइल चुनने की अनुमति देगा:

आपके द्वारा फ़ाइल का चयन करने के बाद और खोलें पर क्लिक करें, मैक्रो सक्रिय शीट की प्रतिलिपि बनाएगा और लक्ष्य कार्यपुस्तिका को स्वचालित रूप से बंद कर देगा। फ़ाइलें (*.xlsx), *.xlsx") यदि फ़ाइल नाम गलत है तो एप्लिकेशन.स्क्रीनअपडेटिंग = गलत सेट करेंटशीट = एप्लिकेशन.एक्टिवशीट सेट क्लोज्डबुक = वर्कबुक। ओपन (फाइलनाम) करेंटशीट.कॉपी आफ्टर:=क्लोज्डबुक.शीट्स(क्लोज्डबुक.वर्कशीट्स.काउंट) क्लोज्डबुक। Close (True) Application.ScreenUpdating = True End if End Sub

Excel VBA बिना किसी अन्य वर्कबुक से शीट कॉपी करनेओपनिंग

यह मैक्रो आपको किसी वर्कशीट को बिना खोले किसी दूसरी एक्सेल फाइल से कॉपी करने में सक्षम बनाता है। प्रतिलिपि की गई शीट को वर्तमान कार्यपुस्तिका के अंत में सम्मिलित किया जाएगा।

बस कोड में कुछ प्रतिस्थापन करना याद रखें:

  • C:\Users\XXX\Documents\ target_Book.xlsx को उस कार्यपुस्तिका के वास्तविक पथ और नाम से बदला जाना चाहिए जिससे आप किसी शीट की प्रतिलिपि बनाना चाहते हैं।
  • शीट1 को उस शीट के नाम से प्रतिस्थापित किया जाना चाहिए जिसे आप कॉपी करना चाहते हैं।
पब्लिक सब कॉपीशीटफ्रॉमक्लोज्ड वर्कबुक() डिम सोर्सबुक वर्कबुक एप्लिकेशन के रूप में। स्क्रीनअपडेटिंग = गलत सेट सोर्सबुक = वर्कबुक। खोलें ("सी: \ उपयोगकर्ता \ XXX \ दस्तावेज़ \ लक्ष्य_बुक. xlsx") स्रोतबुक। एप्लिकेशन को बंद करें। स्क्रीनअपडेटिंग = ट्रू एंड सब

एक्सेल वीबीए को कई बार शीट डुप्लिकेट करने के लिए

कभी-कभी, आपको एक ही शीट को एक से अधिक बार डुप्लिकेट करने की आवश्यकता हो सकती है, उदाहरण के लिए एक ही डेटा सेट पर विभिन्न सूत्रों का परीक्षण करने के लिए। इसे निम्नलिखित मैक्रो के साथ आसानी से किया जा सकता है। = 1 फिर numtimes के लिए = 1 to n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End if End Sub

मूल शीट खोलें, मैक्रो चलाएँ, निर्दिष्ट करें कि सक्रिय शीट की कितनी प्रतियाँ हैंआप बनाना चाहते हैं, और ओके क्लिक करें:

वीबीए के साथ एक्सेल में शीट की डुप्लीकेट कैसे करें

एक्सेल में शीट कॉपी करने के लिए उपरोक्त मैक्रो में से एक के साथ, आप या तो अपनी पुस्तक में VBA कोड सम्मिलित कर सकते हैं या हमारी नमूना कार्यपुस्तिका से मैक्रो चला सकते हैं।

अपनी कार्यपुस्तिका में मैक्रो कैसे जोड़ें

डालने के लिए अपनी कार्यपुस्तिका में कोड, इन चरणों का पालन करें:

  1. वह वर्कशीट खोलें जिसे आप कॉपी करना चाहते हैं।
  2. विज़ुअल बेसिक संपादक खोलने के लिए Alt + F11 दबाएं।
  3. चालू बायां फलक, यह वर्कबुक पर राइट-क्लिक करें, और फिर सम्मिलित करें > मॉड्यूल क्लिक करें।
  4. कोड विंडो में कोड पेस्ट करें।
  5. मैक्रो चलाने के लिए F5 दबाएं।

विस्तृत चरण-दर-चरण निर्देशों के लिए, कृपया एक्सेल में वीबीए कोड कैसे डालें देखें।

कैसे चलाएं हमारी नमूना कार्यपुस्तिका से एक मैक्रो

वैकल्पिक रूप से, आप हमारी नमूना कार्यपुस्तिका को डुप्लिकेट एक्सेल शीट में डाउनलोड कर सकते हैं और वहां से कोड चला सकते हैं।

नमूना कार्यपुस्तिका में निम्नलिखित मैक्रो शामिल हैं:

<0 CopySheetToNewWorkbook - घन को कॉपी करता है वर्कशीट को नई वर्कबुक में किराए पर दें।

कॉपीसेलेक्टेडशीट्स - आपके द्वारा चुनी गई कई शीट्स को एक नई वर्कबुक में कॉपी करता है।

कॉपीशीटटूबिगिनिंगअनदरवर्कबुक - सक्रिय शीट की कॉपी किसी अन्य कार्यपुस्तिका के आरंभ में।

CopySheetToEndAnotherWorkbook - किसी अन्य Excel फ़ाइल के अंत में सक्रिय शीट की प्रतिलिपि बनाता है।

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

CopySheetAndRenameByCell - सक्रिय शीट की एक प्रति बनाता है और चयनित सेल मान के आधार पर इसका नाम बदलता है।

CopySheetAndRenameByCell2 - सक्रिय शीट की प्रतिलिपि बनाता है और हार्डकोड किए गए सेल पते के आधार पर इसका नाम बदलता है।

CopySheetToClosedWorkbook - आपको शीट को एक बंद कार्यपुस्तिका में कॉपी करने की अनुमति देता है।

CopySheetFromClosedWorkbook - आपको एक शीट को दूसरी एक्सेल फ़ाइल से बिना खोले कॉपी करने में सक्षम बनाता है।

DuplicateSheetMultipleTimes - आपको एक्सेल में एक शीट को कई बार डुप्लिकेट करने देता है।

टू अपने एक्सेल में मैक्रो चलाएँ, बस निम्नलिखित करें:

  1. डाउनलोड की गई कार्यपुस्तिका खोलें और संकेत मिलने पर सामग्री को सक्षम करें।
  2. अपनी स्वयं की कार्यपुस्तिका खोलें और उस शीट पर नेविगेट करें जिसे आप करना चाहते हैं कॉपी।
  3. <1 7>अपनी वर्कशीट में, Alt + F8 दबाएं, रुचि के मैक्रो का चयन करें, और चलाएं क्लिक करें।

इस तरह आप नकल कर सकते हैं वीबीए के साथ एक्सेल में एक शीट। मैं आपको पढ़ने के लिए धन्यवाद देता हूं और आशा करता हूं कि अगले सप्ताह हमारे ब्लॉग पर आपसे मुलाकात होगी!

माइकल ब्राउन सॉफ्टवेयर टूल्स का उपयोग करके जटिल प्रक्रियाओं को सरल बनाने के जुनून के साथ एक समर्पित प्रौद्योगिकी उत्साही है। टेक उद्योग में एक दशक से अधिक के अनुभव के साथ, उन्होंने माइक्रोसॉफ्ट एक्सेल और आउटलुक के साथ-साथ गूगल शीट्स और डॉक्स में अपने कौशल को निखारा है। माइकल का ब्लॉग अपने ज्ञान और विशेषज्ञता को दूसरों के साथ साझा करने के लिए समर्पित है, उत्पादकता और दक्षता में सुधार के लिए आसान-से-अनुसरण युक्तियाँ और ट्यूटोरियल प्रदान करता है। चाहे आप एक अनुभवी पेशेवर हों या नौसिखिए, माइकल का ब्लॉग इन आवश्यक सॉफ़्टवेयर उपकरणों से अधिकाधिक लाभ उठाने के लिए मूल्यवान अंतर्दृष्टि और व्यावहारिक सलाह प्रदान करता है।