VBA सह Excel मध्ये शीटची डुप्लिकेट कशी करावी

  • ह्याचा प्रसार करा
Michael Brown

सामग्री सारणी

ट्युटोरियल एक्सेलमध्ये डुप्लिकेट शीट्ससाठी मॅक्रोचा संग्रह प्रदान करते: सेल मूल्यावर आधारित कॉपी आणि पुनर्नामित करा, एकाधिक पत्रके कॉपी करा, सक्रिय वर्कशीट न उघडता दुसर्‍या फाइलमध्ये कॉपी करा आणि बरेच काही.

एक्सेलमध्ये पत्रके मॅन्युअली कॉपी करणे खूपच जलद आणि सरळ आहे... फक्त एकदा किंवा दोनदा केले असल्यास. अनेक पत्रके अनेक वेळा डुप्लिकेट करणे कंटाळवाणे आणि वेळ घेणारे आहे. या पृष्ठावर, हे कार्य स्वयंचलित करण्यासाठी तुम्हाला मूठभर उपयुक्त मॅक्रो सापडतील.

    हा सर्वात सोपा वन-लाइन मॅक्रो करतो. त्याचे नाव नेमके काय सुचवते - सक्रिय शीट नवीन कार्यपुस्तिकेवर कॉपी करते.

    सार्वजनिक उप CopySheetToNewWorkbook() activeSheet. Copy End Sub

    VBA सह Excel मध्ये एकाधिक शीट्स कॉपी करा

    तुम्ही करू इच्छित असल्यास सक्रिय वर्कबुकमधून नवीन शीट्स कॉपी करा, स्वारस्य असलेल्या सर्व वर्कशीट्स निवडा आणि हे मॅक्रो चालवा:

    Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets. End Sub कॉपी करा

    शीट दुसऱ्या वर्कबुकमध्ये कॉपी करण्यासाठी एक्सेल VBA

    तुम्हाला कॉपी केलेले शीट कुठे घालायचे आहे यावर अवलंबून, खालीलपैकी एक मॅक्रो वापरा.

    शीट दुसर्‍या वर्कबुकच्या सुरूवातीस कॉपी करा

    हा मॅक्रो सक्रिय शीटची आधी कॉपी करतो. गंतव्य फाइलमधील इतर सर्व वर्कशीट्स, पुस्तक1 या उदाहरणात. दुसर्‍या फाइलवर कॉपी करण्यासाठी, "Book1.xlsx" ला तुमच्या लक्ष्य वर्कबुकच्या पूर्ण नावाने बदला.

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

    शीट दुसर्‍या वर्कबुकच्या शेवटी कॉपी करा

    कोडचा हा भाग सक्रिय वर्कशीटची डुप्लिकेट करतो आणि प्रत Book1 च्या शेवटी ठेवते. पुन्हा, कृपया तुमच्या गंतव्य कार्यपुस्तिकेच्या नावाने "Book1.xlsx" बदलण्याचे लक्षात ठेवा.

    सार्वजनिक उप CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).पत्रक(वर्कबुक( "Book1.xlsx"). " .वर्कशीट्स.गणना) एंड सब

    टीप. मॅक्रो कार्य करण्यासाठी, लक्ष्य कार्यपुस्तिका तुमच्या हार्ड ड्राइव्ह किंवा नेटवर्कवर जतन करणे आवश्यक आहे.

    शीट निवडलेल्या वर्कबुकमध्ये कॉपी करा

    वर्तमान शीट कोणत्याही खुल्या वर्कबुकमध्ये कॉपी करण्यास सक्षम होण्यासाठी, तुम्ही ListBox नियंत्रण ( ListBox1 नावाने) आणि दोन बटणांसह एक UserForm ( UserForm1 नावाने) तयार करू शकता:

    <3

    पुढे, फॉर्मवर डबल-क्लिक करा आणि कोड विंडोमध्ये खालील कोड पेस्ट करा:

    Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear for each wbk in application.Workbooks ListBox1.Add (wbk.Name) Next End Sub Private Sub CommandButton1_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 सोबत, तुम्ही खालीलपैकी एक वापरू शकता. कॉपी करण्यासाठी मॅक्रोतुमच्या निवडीच्या वर्कबुकमध्ये सक्रिय शीट.

    शीटची निवडलेल्या वर्कबुकच्या सुरूवातीस कॉपी करा :

    Public Sub CopySheetToBeginningAnotherWorkbook() Load UserForm1 UserForm1.Show If (UserForm1.k"Select" " ) नंतर activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End If Unload UserForm1 End Sub

    शीट निवडलेल्या वर्कबुकच्या शेवटी कॉपी करा :

    सार्वजनिक उप CopySheetToEndAnotherWorkbook() UserForm1 UserForm1 लोड करा. दाखवा जर (UserForm1.SelectedWorkbook "" ) नंतर ActiveSheet. कॉपी करा:=Workbooks( _ UserForm1.SelectedWorkbook).Sheets(UserForm1.SelectedWorkbook).Sheets(UserForm1.SelectedWorkbook).Sheets(UserForm1.WorkSheets) अनलोड करा. End Sub

    Excel मध्ये चालवल्यावर, मॅक्रो तुम्हाला सध्या उघडलेल्या सर्व वर्कबुकची सूची दाखवेल. तुम्ही आवश्यक ते निवडा आणि ओके क्लिक करा:

    शीट कॉपी करण्यासाठी आणि नाव बदलण्यासाठी एक्सेल मॅक्रो

    जेव्हा तुम्ही एक्सेलमध्ये शीट कॉपी करता, तेव्हा प्रतिकृती दिली जाते डीफॉल्ट स्वरूपातील नाव जसे की पत्रक1 (2) . खालील मॅक्रो तुम्हाला डिफॉल्ट नाव मॅन्युअली बदलण्याचा त्रास टाळू शकतात.

    हा कोड सक्रिय वर्कशीट डुप्लिकेट करतो, कॉपीला "टेस्ट शीट" असे नाव देतो (तुम्ही ते तुम्हाला आवडत असलेल्या इतर कोणत्याही नावाने बदलू शकता) , आणि वर्तमान कार्यपुस्तिकेच्या शेवटी कॉपी केलेले पत्रक ठेवते.

    सार्वजनिक उप CopySheetAndRenamePredefined()activeSheet.Copy After:=Worksheets(Sheets.Count) एरर वर पुन्हा सुरू करा पुढील activeSheet.Name ="चाचणी पत्रक" एंड सब

    वापरकर्त्याला कॉपी केलेल्या शीटसाठी नाव निर्दिष्ट करण्याची परवानगी देण्यासाठी , हा कोड वापरा:

    सार्वजनिक उप CopySheetAndRename() Dim newName as String on Error पुन्हा सुरू करा पुढील newName = InputBox( "कॉपी केलेल्या वर्कशीटसाठी नाव प्रविष्ट करा" ) जर newName "" असेल तर activeSheet.Copy After:=Worksheets(Sheets.Count) एरर वर पुन्हा सुरू करा पुढील activeSheet.Name = newName End असल्यास End Sub

    चालू झाल्यावर, मॅक्रो खालील इनपुट बॉक्स दाखवतो, ज्यामध्ये तुम्ही इच्छित नाव टाइप करा आणि ओके दाबा:

    शीट कॉपी करण्यासाठी आणि सेल व्हॅल्यूवर आधारित पुनर्नामित करण्यासाठी एक्सेल मॅक्रो

    इन काही परिस्थितींमध्ये, विशिष्ट सेल मूल्यासह कॉपीला नाव देणे अधिक सोयीचे असू शकते, उदाहरणार्थ, स्तंभ शीर्षलेख. यासाठी, तुम्ही फक्त वरील कोड घ्या आणि सध्या निवडलेल्या सेलचे मूल्य इनपुट बॉक्समध्ये आपोआप पुरवा. मागील उदाहरणाप्रमाणे, प्रत सक्रिय कार्यपुस्तिकेच्या शेवटी ठेवली जाईल.

    सर्वात अवघड भाग म्हणजे तुमच्या वापरकर्त्यांनी चालवण्यापूर्वी योग्य सेल निवडणे आवश्यक आहे. मॅक्रो :)

    पब्लिक सब CopySheetAndRenameByCell() स्ट्रिंग ऑन एरर म्हणून नवीन नाव मंद करा पुढील newName = InputBox( "कॉपी केलेल्या वर्कशीटसाठी नाव प्रविष्ट करा" , "कॉपी वर्कशीट" , ActiveCell.Value) जर newName "" नंतर सक्रिय शीट. Copy After:=Worksheets(Sheets.Count) त्रुटीवर पुढील सक्रिय शीट पुन्हा सुरू करा.Name = newName End असल्यास End Sub

    वैकल्पिकपणे, तुम्ही चा पत्ता हार्डकोड करू शकतासेल ज्याद्वारे कॉपीचे नाव दिले जावे, सेल A1 खालील कोडमध्ये. दुसर्‍या सेलवर आधारित कॉपी केलेल्या वर्कशीटला नाव देण्यासाठी, योग्य सेल संदर्भासह A1 पुनर्स्थित करा.

    सार्वजनिक उप CopySheetAndRenameByCell2() वर्कशीट सेट म्हणून मंद wks wks = activeSheet activeSheet. नंतर कॉपी करा:=Worksheets(Sheets.Count) जर wks.Range ( "A1" ).मूल्य "" नंतर त्रुटी नंतर पुढील सक्रिय शीट पुन्हा सुरू करा.नाव = wks.Range( "A1" ).व्हॅल्यू एंड जर wks. सक्रिय करा एंड सब

    बंद वर्कबुकमध्ये वर्कशीट कॉपी करण्यासाठी मॅक्रो

    हा मॅक्रो बंद वर्कबुकच्या शेवटी सक्रिय शीट कॉपी करतो. दुसर्‍या वर्कबुकचे नाव कोडमध्ये निर्दिष्ट केलेले नाही - मॅक्रो मानक Windows Explorer विंडो उघडेल आणि तुम्हाला कोणतीही गंतव्य फाइल निवडण्याची परवानगी देईल:

    तुम्ही फाइल निवडल्यानंतर आणि उघडा वर क्लिक करा, मॅक्रो सक्रिय शीट कॉपी करेल आणि लक्ष्य कार्यपुस्तिका आपोआप बंद करेल.

    सार्वजनिक सब कॉपीशीटटोक्लोस्डवर्कबुक () मंद फाईलचे नाव मंद बंद केलेले पुस्तक वर्कबुक म्हणून मंद करंटशीट वर्कशीट फाइलनाव म्हणून मंद करा = Application.GetOpenFilename( "Excel फाइल्स (*.xlsx), *.xlsx" ) जर फाईलचे नाव खोटे असेल तर Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set closeBook = Workbooks. उघडा (fileName) currentSheet. नंतर कॉपी करा:=closedBook.Sheets(closedBook.Worksheets.Count) बंद पुस्तक. क्लोज ( खरे ) ऍप्लिकेशन. स्क्रीनअपडेटिंग = ट्रू एंड इफ एंड सब

    विना दुसर्‍या वर्कबुकमधून शीट कॉपी करण्यासाठी एक्सेल VBAओपनिंग

    हे मॅक्रो तुम्हाला दुसर्‍या एक्सेल फाईलमधून वर्कशीट न उघडता कॉपी करण्यास सक्षम करते. कॉपी केलेली शीट वर्तमान कार्यपुस्तिकेच्या शेवटी घातली जाईल.

    कोडमध्ये फक्त काही बदल करण्याचे लक्षात ठेवा:

    • C:\Users\XXX\Documents\ Target_Book.xlsx हे वर्कबुकच्या वास्तविक मार्गात आणि नावात बदलले पाहिजे ज्यावरून तुम्ही शीट कॉपी करू इच्छिता.
    • शीट1 तुम्हाला कॉपी करायच्या असलेल्या शीटच्या नावाने बदलले पाहिजे.
    Public Sub CopySheetFromClosedWorkbook() वर्कबुक ऍप्लिकेशन म्हणून मंद सोर्सबुक. स्क्रीनअपडेटिंग = फॉल्स सेट सोर्सबुक = वर्कबुक. उघडा ( "C:\Users\XXX\Documents\Target_Book.xlsx" ) sourceBook.Sheets( "Sheet1" ).यानंतर कॉपी करा:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.count) sourceBook. Application बंद करा.ScreenUpdating = True End Sub

    शीट डुप्लिकेट करण्यासाठी एक्सेल VBA अनेक वेळा

    कधीकधी, तुम्हाला समान शीट एकापेक्षा जास्त वेळा डुप्लिकेट करावे लागेल, उदाहरणार्थ एकाच डेटा सेटवर भिन्न सूत्रांची चाचणी घेण्यासाठी. हे खालील मॅक्रोसह सहज करता येते.

    सार्वजनिक सब डुप्लिकेटशीटमल्टीपलटाइम्स() मंद n पूर्णांक ऑन एरर पुन्हा सुरू करा पुढील n = इनपुटबॉक्स( "आपण सक्रिय शीटच्या किती प्रती बनवू इच्छिता?" ) जर n > = 1 नंतर numtimes = 1 to nactiveSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End असल्यास End Sub

    मूळ पत्रक उघडा, मॅक्रो चालवा, सक्रिय शीटच्या किती प्रती आहेत ते निर्दिष्ट करातुम्हाला बनवायचे आहे, आणि क्लिक करा ठीक आहे :

    VBA सह Excel मध्ये शीट्सची डुप्लिकेट कशी करायची

    Excel मध्ये शीट कॉपी करण्यासाठी वरीलपैकी एका मॅक्रोसह, तुम्ही एकतर तुमच्या स्वतःच्या पुस्तकात VBA कोड घालू शकता किंवा आमच्या नमुना वर्कबुकमधून मॅक्रो चालवू शकता.

    तुमच्या वर्कबुकमध्ये मॅक्रो कसा जोडायचा

    इन्सर्ट करण्यासाठी तुमच्या वर्कबुकमधील कोड, या पायऱ्या करा:

    1. तुम्हाला कॉपी करायचे असलेले वर्कशीट उघडा.
    2. Visual Basic Editor उघडण्यासाठी Alt + F11 दाबा.
    3. चालू करा. डाव्या उपखंडावर, हे वर्कबुक उजवे-क्लिक करा आणि नंतर घाला > मॉड्युल क्लिक करा.
    4. कोड विंडोमध्ये कोड पेस्ट करा.
    5. मॅक्रो चालवण्यासाठी F5 दाबा.

    तपशीलवार चरण-दर-चरण सूचनांसाठी, कृपया Excel मध्ये VBA कोड कसा घालायचा ते पहा.

    कसे चालवायचे. आमच्या नमुना वर्कबुकमधील मॅक्रो

    वैकल्पिकपणे, तुम्ही आमचे नमुना वर्कबुक डुप्लिकेट एक्सेल शीट्समध्ये डाउनलोड करू शकता आणि तेथून कोड रन करू शकता.

    नमुना वर्कबुकमध्ये खालील मॅक्रो आहेत:

    <0 CopySheetToNewworkbook - cu कॉपी करते नवीन वर्कबुकवर वर्कशीट रेंट करा.

    कॉपीसिलेक्टेडशीट्स - तुम्ही नवीन वर्कबुकमध्ये निवडलेल्या एकाधिक शीट्स कॉपी करते.

    कॉपीशीटटूबेगिनिंगअनदरवर्कबुक - सक्रिय शीट कॉपी करते दुसर्‍या कार्यपुस्तिकेच्या सुरूवातीस.

    CopySheetToEndAnotherWorkbook - सक्रिय शीट दुसर्‍या Excel फाईलच्या शेवटी कॉपी करते.

    CopySheetAndRename - वर्तमान डुप्लिकेट करते पत्रकवापरकर्त्याने निर्दिष्ट केल्याप्रमाणे त्याचे नाव बदलते, आणि वर्तमान वर्कबुकमध्ये इतर सर्व शीट्स नंतर प्रत ठेवते.

    कॉपीशीट आणि पुनर्नामित पूर्वनिर्धारित - सक्रिय शीटची डुप्लिकेट करते, कॉपीला हार्डकोड केलेले नाव देते आणि ते ठेवते. सध्याच्या कार्यपुस्तिकेच्या शेवटी.

    CopySheetAndRenameByCell - सक्रिय शीटची एक प्रत बनवते आणि निवडलेल्या सेल मूल्यावर आधारित तिचे नाव बदलते.

    CopySheetAndRenameByCell2 - सक्रिय शीट कॉपी करते आणि हार्डकोड सेल पत्त्यावर आधारित त्याचे नाव बदलते.

    CopySheetToClosedWorkbook - तुम्हाला बंद वर्कबुकमध्ये पत्रक कॉपी करण्याची परवानगी देते.

    CopySheetFromClosedWorkbook - तुम्हाला दुसर्‍या Excel फाईलमधून पत्रक न उघडता कॉपी करण्यास सक्षम करते.

    DuplicateSheetMultipleTimes - तुम्हाला Excel मध्ये शीट अनेक वेळा डुप्लिकेट करू देते.

    ते तुमच्या Excel मध्ये मॅक्रो चालवा, फक्त पुढील गोष्टी करा:

    1. डाउनलोड केलेले कार्यपुस्तक उघडा आणि सूचित केल्यास सामग्री सक्षम करा.
    2. तुमचे स्वतःचे कार्यपुस्तक उघडा आणि तुम्हाला हव्या असलेल्या शीटवर नेव्हिगेट करा. कॉपी.
    3. <1 7>तुमच्या वर्कशीटमध्ये, Alt + F8 दाबा, आवडीचा मॅक्रो निवडा आणि रन वर क्लिक करा.

    अशा प्रकारे तुम्ही डुप्लिकेट करू शकता VBA सह Excel मध्ये एक पत्रक. वाचल्याबद्दल मी तुमचा आभारी आहे आणि तुम्हाला पुढील आठवड्यात आमच्या ब्लॉगवर भेटण्याची आशा आहे!

    मायकेल ब्राउन हे सॉफ्टवेअर टूल्स वापरून जटिल प्रक्रिया सुलभ करण्याच्या उत्कटतेने एक समर्पित तंत्रज्ञान उत्साही आहे. टेक उद्योगातील एका दशकाहून अधिक अनुभवासह, त्यांनी Microsoft Excel आणि Outlook, तसेच Google Sheets आणि Docs मध्ये आपल्या कौशल्यांचा गौरव केला आहे. मायकेलचा ब्लॉग त्याचे ज्ञान आणि कौशल्य इतरांसोबत सामायिक करण्यासाठी समर्पित आहे, उत्पादकता आणि कार्यक्षमता सुधारण्यासाठी सुलभ टिपा आणि ट्यूटोरियल प्रदान करतो. तुम्ही अनुभवी व्यावसायिक असाल किंवा नवशिक्या असाल, मायकेलचा ब्लॉग या आवश्यक सॉफ्टवेअर टूल्सचा जास्तीत जास्त फायदा घेण्यासाठी मौल्यवान अंतर्दृष्टी आणि व्यावहारिक सल्ला देतो.