Ինչպես կրկնօրինակել թերթը Excel-ում VBA-ով

  • Կիսվել Սա
Michael Brown

Ուսուցումը տրամադրում է մակրոների հավաքածու Excel-ում թերթերը կրկնօրինակելու համար. պատճենել և վերանվանել բջջային արժեքի հիման վրա, պատճենել բազմաթիվ թերթեր, պատճենել ակտիվ աշխատաթերթը մեկ այլ ֆայլ առանց բացելու և այլն:

Excel-ում թերթերի ձեռքով պատճենումը բավականին արագ և պարզ է... եթե կատարվում է ընդամենը մեկ կամ երկու անգամ: Մի քանի թերթերի բազմակի կրկնօրինակումը ձանձրալի է և ժամանակատար: Այս էջում դուք կգտնեք մի քանի օգտակար մակրոներ՝ այս առաջադրանքն ավտոմատացնելու համար:

    Excel VBA թերթիկը նոր աշխատանքային գրքում պատճենելու համար

    Այս ամենապարզ մեկ տող մակրո ճիշտ այն, ինչ հուշում է նրա անունը. պատճենում է ակտիվ թերթիկը նոր աշխատանքային գրքում:

    Public Sub CopySheetToNewWorkbook() activeSheet.Copy End Sub

    Պատճենել բազմաթիվ թերթեր Excel-ում VBA-ով

    Եթե ցանկանում եք պատճենեք ակտիվ աշխատանքային գրքույկից մի քանի թերթ նորը, ընտրեք բոլոր հետաքրքրող աշխատաթերթերը և գործարկեք այս մակրո.

    Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End Sub

    Excel VBA թերթը մեկ այլ աշխատանքային գրքում պատճենելու համար

    Կախված նրանից, թե որտեղ եք ցանկանում տեղադրել պատճենված թերթիկը, օգտագործեք հետևյալ մակրոներից մեկը:

    Պատճենեք թերթիկը մեկ այլ աշխատանքային գրքի սկզբում

    Այս մակրոն պատճենում է ակտիվ թերթիկը նախկինում բոլոր մյուս աշխատաթերթերը նպատակակետ ֆայլում, Գիրք1 այս օրինակում: Մեկ այլ ֆայլ պատճենելու համար «Book1.xlsx»-ը փոխարինեք ձեր թիրախային աշխատանքային գրքի լրիվ անվանումով:

    Հանրային ենթակետCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks("Book1.xlsx"). Sheets(1) End Sub

    Պատճենել թերթիկը մեկ այլ աշխատանքային գրքի վերջ

    Կոդի այս հատվածը կրկնօրինակում է ակտիվ աշխատաթերթը և տեղադրում է պատճենը Գիրք1 -ի վերջում: Կրկին, խնդրում ենք հիշել, որ «Book1.xlsx»-ը փոխարինեք ձեր նպատակակետ աշխատանքային գրքույկի անունով:

    Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx " ).Աշխատանքային թերթիկներ.Count) End Sub

    Նշում. Որպեսզի մակրոները աշխատեն, նպատակային աշխատանքային գիրքը պետք է պահպանվի ձեր կոշտ սկավառակի կամ ցանցի վրա:

    Պատճենեք թերթիկը ընտրված աշխատանքային գրքում

    Ընթացիկ թերթիկը ցանկացած բաց աշխատանքային գրքում պատճենելու համար, Դուք կարող եք ստեղծել UserForm (անունը UserForm1 ) ListBox հսկիչով ( named ListBox1 ) և երկու կոճակներով.

    Հաջորդը կրկնակի սեղմեք ձևի վրա և տեղադրեք ստորև բերված կոդը Code պատուհանում.

    Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Every wbk In Application.Workbooks ListBox1.AddItem (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.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(UserFormCooledW1ork). End Sub

    Երբ գործարկվում է Excel-ում, մակրոն ձեզ ցույց կտա ներկայումս բացված բոլոր աշխատանքային գրքերի ցանկը: Դուք ընտրում եք անհրաժեշտը և սեղմում OK:

    Excel մակրո՝ թերթը պատճենելու և վերանվանելու համար

    Երբ դուք պատճենում եք թերթիկը Excel-ում, կրկնօրինակին տրվում է անունը լռելյայն ձևաչափով, ինչպիսին է Թերթիկը1 (2) : Հետևյալ մակրոները կարող են ձեզ խնայել լռելյայն անունը ձեռքով փոխելու դժվարությունից:

    Այս կոդը կրկնօրինակում է ակտիվ աշխատաթերթը, պատճենը անվանում է «Թեստային թերթիկ» (դուք ազատ եք այն փոխարինելու ցանկացած այլ անունով, որը ցանկանում եք): , և պատճենված թերթիկը տեղադրում է ընթացիկ աշխատանքային գրքի վերջում:

    Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name =«Test Sheet» End Sub

    Օգտատիրոջը թույլ տալու համար նշել պատճենված թերթի անունը , օգտագործեք այս կոդը՝

    Public Sub CopySheetAndRename() Dim newName As String On Error Resume Next newName = InputBox( «Մուտքագրեք պատճենված աշխատաթերթի անունը» ) If newName «» Ապա activeSheet.Copy After:=Worksheets(Sheets.Count) Սխալի դեպքում Resume Next activeSheet.Name = newName End If End Sub

    Գործարկման արդյունքում մակրո ցուցադրում է հետևյալ մուտքագրման տուփը, որտեղ մուտքագրում եք ցանկալի անունը և սեղմում OK.

    Excel մակրո՝ թերթը պատճենելու և բջիջի արժեքի հիման վրա վերանվանելու համար

    In Որոշ իրավիճակներում ավելի հարմար է անվանել պատճենը որոշակի բջիջի արժեքով, օրինակ՝ սյունակի վերնագիր: Դրա համար դուք պարզապես վերցնում եք վերը նշված կոդը և ավտոմատ կերպով մուտքագրում եք ներկայիս ընտրված բջիջի արժեքը մուտքագրման տուփին: Ինչպես նախորդ օրինակում, պատճենը կտեղադրվի ակտիվ աշխատանքային գրքույկի վերջում:

    Ամենադժվարն այն է, որ ձեր օգտատերերը միշտ ընտրեն ճիշտ բջիջը գործելուց առաջ: մակրո :)

    Public Sub CopySheetAndRenameByCell() Dim newName As String On Error Resume Next newName = InputBox( "Enter the name for the copyed worksheet" , "Copy worksheet" , ActiveCell.Value) If newName "" Այնուհետեւ activeSheet. Copy After:=Worksheets(Sheets.Count) Սխալի դեպքում Resume Next activeSheet.Name = newName End If End Sub

    Այլընտրանքով, կարող եք կոշտ կոդավորել հասցենբջիջը , որով պետք է անվանակոչվի պատճենը, ստորև բերված կոդի A1 բջիջը: Պատճենված աշխատաթերթը մեկ այլ բջիջի վրա անվանելու համար փոխարինեք A1-ը համապատասխան բջջային հղումով:

    Public Sub CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Range ( "A1" ).Value "" Այնուհետեւ սխալի դեպքում Resume Next activeSheet.Name = wks.Range( "A1" ).Value End If wks.Activate End Sub

    Macro՝ աշխատանքային թերթիկը փակ աշխատանքային գրքում պատճենելու համար

    Այս մակրոն պատճենում է ակտիվ թերթիկը փակ աշխատանքային գրքի վերջում: Մեկ այլ աշխատանքային գրքի անվանումը նշված չէ կոդի մեջ. մակրոն կբացի Windows Explorer-ի ստանդարտ պատուհանը և թույլ կտա ընտրել ցանկացած նպատակակետ ֆայլ.

    Ֆայլն ընտրելուց հետո: և սեղմեք Բացել , մակրոները կպատճենեն ակտիվ թերթիկը և ինքնաբերաբար կփակի նպատակային աշխատանքային գիրքը:

    Public Sub CopySheetToClosedWorkbook() Dim fileName Dim փակ Գիրք Որպես աշխատանքային գրքույկ Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Ֆայլեր (*.xlsx), *.xlsx" ) Եթե fileName False Ապա Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Սահմանել փակ Գրքույկ = Workbooks: Բացեք (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) փակ գիրք: Փակել ( True ) Application.ScreenUpdating = True End If End Sub

    Excel VBA թերթը մեկ այլ աշխատանքային գրքից պատճենելու համար առանցբացում

    Այս մակրոն թույլ է տալիս պատճենել աշխատաթերթը մեկ այլ Excel ֆայլից՝ առանց այն բացելու: Պատճենված թերթիկը կտեղադրվի ընթացիկ աշխատանքային գրքույկի վերջում:

    Պարզապես հիշեք, որ մի քանի փոխարինում կատարեք կոդը՝

    • C:\Users\XXX\Documents\ Target_Book.xlsx-ը պետք է փոխվի աշխատանքային գրքի իրական ուղու և անվանման, որտեղից ցանկանում եք պատճենել թերթիկը:
    • Sheet1-ը պետք է փոխարինվի այն թերթի անունով, որը ցանկանում եք պատճենել:
    Public Sub CopySheetFromClosedWorkbook() Dim sourceBook As Workbook Application.ScreenUpdating = False Set sourceBook = Workbooks: Բացել ("C:\Users\XXX\Documents\Target_Book.xlsx") sourceBook.Sheets( "Sheet1" ).Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) sourceBook. Փակեք Application.ScreenUpdating = True End Sub

    Excel VBA թերթը մի քանի անգամ կրկնօրինակելու համար

    Երբեմն ձեզ կարող է անհրաժեշտ լինել կրկնօրինակել նույն թերթը մեկից ավելի անգամ, օրինակ՝ նույն տվյալների հավաքածուի վրա տարբեր բանաձևեր փորձարկելու համար: Սա հեշտությամբ կարելի է անել հետևյալ մակրոյով։

    Public Sub DuplicateSheetMultipleTimes() Dim n Որպես ամբողջ թիվ Սխալով Վերսկսել Հաջորդը n = InputBox( «Ակտիվ թերթի քանի՞ օրինակ եք ուզում ստեղծել։» ) Եթե n > = 1 Հետո numtimes = 1 To n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End If End Sub

    Բացեք սկզբնական թերթիկը, գործարկեք մակրո, նշեք ակտիվ թերթի քանի օրինակցանկանում եք ստեղծել և սեղմեք OK :

    Ինչպես կրկնօրինակել թերթերը Excel-ում VBA-ով

    Թերթիկը պատճենել Excel-ում վերը նշված մակրոներից որևէ մեկով դուք կարող եք կամ տեղադրել VBA կոդը ձեր սեփական գրքում կամ գործարկել մակրո մեր նմուշի աշխատանքային գրքույկից:

    Ինչպես ավելացնել մակրո ձեր աշխատանքային գրքում

    Տեղադրելու համար կոդը ձեր աշխատանքային գրքում, կատարեք հետևյալ քայլերը.

    1. Բացեք աշխատաթերթը, որը ցանկանում եք պատճենել:
    2. Սեղմեք Alt + F11՝ Visual Basic Editor-ը բացելու համար:
    3. Միացված է: ձախ պատուհանում, աջ սեղմեք This Workbook , ապա սեղմեք Տեղադրել > Module :
    4. Տեղադրեք կոդը Code պատուհանում:
    5. Մակրոն գործարկելու համար սեղմեք F5:

    Մանրամասն քայլ առ քայլ հրահանգների համար տե՛ս Ինչպես տեղադրել VBA կոդը Excel-ում:

    Ինչպես գործարկել մակրո մեր նմուշի աշխատանքային գրքույկից

    Այլընտրանք, դուք կարող եք ներբեռնել մեր աշխատանքային գրքույկի նմուշը Duplicate Excel թերթերում և գործարկել կոդը այնտեղից:

    Նմուշի աշխատանքային գրքույկը պարունակում է հետևյալ մակրոները.

    CopySheetToNewWorkbook - պատճենում է cu վերարտադրեք աշխատաթերթը նոր աշխատանքային գրքում:

    CopySelectedSheets - պատճենում է ձեր ընտրած բազմաթիվ թերթերը նոր աշխատանքային գրքում:

    CopySheetToBeginningAnotherWorkbook - պատճենում է ակտիվ թերթիկը մեկ այլ աշխատանքային գրքի սկիզբ:

    CopySheetToEndAnotherWorkbook - պատճենում է ակտիվ թերթիկը մեկ այլ Excel ֆայլի վերջում:

    CopySheetAndRename - կրկնօրինակում է ընթացիկ թերթիկ,վերանվանում է այն, ինչպես նշված է օգտատիրոջ կողմից, և պատճենը դնում է ընթացիկ աշխատանքային գրքում մնացած բոլոր թերթերից հետո:

    CopySheetAndRenamePredefined - կրկնօրինակում է ակտիվ թերթիկը, տալիս է կոշտ կոդավորված անուն պատճենին և տեղադրում այն: ընթացիկ աշխատանքային գրքի վերջում:

    CopySheetAndRenameByCell - պատճենում է ակտիվ թերթիկը և վերանվանում այն՝ հիմնվելով ընտրված բջիջի արժեքի վրա:

    CopySheetAndRenameByCell2 - պատճենում է ակտիվ թերթիկը և վերանվանում այն՝ հիմնվելով կոշտ կոդավորված բջջային հասցեի վրա:

    CopySheetToClosedWorkbook - թույլ է տալիս պատճենել թերթիկը փակ աշխատանքային գրքում:

    CopySheetFromClosedWorkbook - հնարավորություն է տալիս պատճենել թերթը մեկ այլ Excel ֆայլից՝ առանց այն բացելու:

    DuplicateSheetMultipleTimes - թույլ է տալիս մի քանի անգամ կրկնօրինակել թերթը Excel-ում:

    To գործարկեք մակրոն ձեր Excel-ում, պարզապես կատարեք հետևյալը.

    1. Բացեք ներբեռնված աշխատանքային գիրքը և միացրեք բովանդակությունը, եթե ձեզ հուշեն:
    2. Բացեք ձեր սեփական աշխատանքային գիրքը և անցեք այն թերթիկը, որը ցանկանում եք: պատճեն.
    3. <1 7>Ձեր աշխատաթերթում սեղմեք Alt + F8 , ընտրեք հետաքրքրող մակրոն և սեղմեք Գործարկել :

    Այսպես կարող եք կրկնօրինակել թերթիկ Excel-ում VBA-ով: Շնորհակալ եմ կարդալու համար և հուսով եմ, որ հաջորդ շաբաթ կտեսնենք ձեզ մեր բլոգում:

    Մայքլ Բրաունը նվիրված տեխնոլոգիայի էնտուզիաստ է, որը ձգտում է պարզեցնել բարդ գործընթացները՝ օգտագործելով ծրագրային գործիքները: Տեխնոլոգիական ոլորտում ավելի քան մեկ տասնամյակ փորձ ունենալով՝ նա կատարելագործել է իր հմտությունները Microsoft Excel-ում և Outlook-ում, ինչպես նաև Google Sheets-ում և Docs-ում: Մայքլի բլոգը նվիրված է իր գիտելիքներն ու փորձառությունը ուրիշների հետ կիսելուն՝ տրամադրելով հեշտ օգտագործվող խորհուրդներ և ձեռնարկներ՝ արտադրողականությունն ու արդյունավետությունը բարձրացնելու համար: Անկախ նրանից, թե դուք փորձառու մասնագետ եք, թե սկսնակ, Մայքլի բլոգը առաջարկում է արժեքավոր պատկերացումներ և գործնական խորհուրդներ՝ առավելագույն օգուտ քաղելու այս կարևոր ծրագրային գործիքներից: