Hoe kinne jo in blêd duplisearje yn Excel mei VBA

  • Diel Dit
Michael Brown

De tutorial jout in samling makro's om blêden yn Excel te duplikearjen: kopiearje en omneame basearre op selwearde, kopiearje meardere blêden, kopiearje in aktyf wurkblêd nei in oar bestân sûnder it te iepenjen, en mear.

Hânmjittich kopiearjen fan blêden yn Excel is frij fluch en ienfâldich ... as ien of twa kear útfierd. It duplikearjen fan meardere blêden meardere kearen is saai en tiidslinend. Op dizze side fine jo in hantsjefol nuttige makro's om dizze taak te automatisearjen.

    Excel VBA om blêd nei nij wurkboek te kopiearjen

    Dizze ienfâldichste ien-line makro docht krekt wat de namme suggerearret - kopiearret it aktive blêd nei in nij wurkboek.

    Public Sub CopySheetToNewWorkbook() activeSheet.Copy End Sub

    Kopieer meardere blêden yn Excel mei VBA

    As jo ​​wolle kopiearje ferskate blêden fan it aktive wurkboek nei in nij, selektearje alle wurkblêden fan belang en fier dizze makro:

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

    Excel VBA om blêd nei in oar wurkboek te kopiearjen

    Ofhinklik fan wêr't jo it kopiearre blêd ynfoegje wolle, brûk ien fan 'e folgjende makro's.

    Blêd kopiearje nei it begjin fan in oar wurkboek

    Dizze makro kopiearret it aktive blêd foardat alle oare wurkblêden yn it bestimmingsbestân, Boek1 yn dit foarbyld. Om nei in oare triem te kopiearjen, ferfange "Book1.xlsx" mei de folsleine namme fan jo doelwurkboek.

    Publike SubCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Sheets(1) End Sub

    Kopiearje blêd nei it ein fan in oar wurkboek

    Dit stikje koade duplicates it aktive wurkblêd en pleatst de kopy oan 'e ein fan Boek1 . Nochris, tink om "Book1.xlsx" te ferfangen troch de namme fan jo bestimmingswurkboek.

    Public Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Book1.xlsx" ).Sheets(Workbooks( "Book1.xlsx " ).Worksheets.Count) End Sub

    Opmerking. Om de makro's te wurkjen, moat it doelwurkboek bewarre wurde op jo hurde skiif of netwurk.

    Blêd kopiearje nei in selektearre wurkboek

    Om it aktive blêd nei elk iepen wurkboek te kopiearjen, jo kinne in UserForm (neamd UserForm1 ) meitsje mei in ListBox kontrôle ( neamd ListBox1 ) en twa knoppen:

    Dûbelklikje dan op it formulier en plak de ûndersteande koade yn it koade-finster:

    Public SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Every wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) Folgjende Ein Sub Private Sub CommandButton1_Click () As ListBox1.ListIndex & GT; -1 Then SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Hide End Sub

    Mei it UserForm yn plak, kinne jo ien fan de folgjende brûke makros te kopiearjen deaktyf blêd nei it wurkboek fan jo kar.

    Kopiearje blêd nei it begjin fan it selektearre wurkboek :

    Public Sub CopySheetToBeginningAnotherWorkbook() Load UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook " " ) Then activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End If Unload UserForm1 End Sub

    Kopiearje blêd nei it ein fan it selektearre wurkboek :

    Public Sub CopySheetToEndAnotherWorkbook() Load UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "") Then activeSheet.Copy After:=Workbooks( _ UserForm1.SelectedWorkbook).Sheets( _ Workbooks(UserForm1.SelectedWorkbook) Endload.SelectedWorkbook). End Sub

    As jo ​​rinne yn Excel, sil de makro jo in list sjen litte fan alle op it stuit iepene wurkboeken. Jo selektearje de nedige en klikje op OK:

    Excel-makro om blêd te kopiearjen en omneame

    As jo ​​in blêd yn Excel kopiearje, wurdt de replika in namme yn it standertformaat lykas Sheet1 (2) . De folgjende makro's kinne jo de muoite besparje om de standertnamme mei de hân te feroarjen.

    Dizze koade duplikearret it aktive wurkblêd, neamt de kopy as "Testblêd" (jo binne frij om it te ferfangen troch elke oare namme dy't jo wolle) , en pleatst it kopiearre blêd oan 'e ein fan it aktive wurkboek.

    Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name ="Testblêd" End Sub

    Om de brûker te tastean de namme foar it kopiearre blêd op te jaan , brûk dizze koade:

    Public Sub CopySheetAndRename() Dim newName As String By Flater Resume Next newName = InputBox( "Fier de namme yn foar it kopiearre wurkblêd" ) If newName "" Then activeSheet.Copy After:=Worksheets(Sheets.Count) By flater Ferfetsje Folgjende activeSheet.Name = newName End If End Sub

    By it útfieren, de makro toant it folgjende ynfierfak, wêryn jo de winske namme ynfiere en op OK drukke:

    Excel-makro om blêd te kopiearjen en omneame op basis fan selwearde

    In guon situaasjes, it kin wêze handiger in namme in kopy mei in spesifike sel wearde, Bygelyks, in kolom kop. Hjirfoar nimme jo gewoan de boppesteande koade en leverje de wearde fan 'e op it stuit selekteare sel automatysk nei it ynfierfak. Lykas by it foarige foarbyld sil de kopy oan 'e ein fan it aktive wurkboek pleatst wurde.

    It lestichste diel soe wêze dat jo brûkers altyd de juste sel selektearje foardat se rinne. de makro :)

    Public Sub CopySheetAndRenameByCell() Dim newName As String On Error Resume Next newName = InputBox( "Fier de namme yn foar it kopiearre wurkblêd" , "Kopiearje wurkblêd" , ActiveCell.Value) As newName "" Dan activeSheet. Kopiearje Nei:=Werkblêden(Sheets.Count) By flater Ferfetsje Folgjende activeSheet.Name = newName End If End Sub

    Alternatyf kinne jo it adres fan hardcode fande sel wêrmei't de kopy neamd wurde moat, sel A1 yn 'e ûndersteande koade. Om it kopiearre wurkblêd te neamen op basis fan in oare sel, ferfange A1 mei in passende selferwizing.

    Public Sub CopySheetAndRenameByCell2() Dim wks As Wurkblêd Set wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Range ( "A1" ).Wearde "" Dan op flater Ferfetsje Folgjende activeSheet.Name = wks.Range( "A1" ).Wearde Ein As wks.Activate End Sub

    Makro om wurkblêd te kopiearjen nei in sletten wurkboek

    Dizze makro kopiearret it aktive blêd nei it ein fan in sletten wurkboek. De namme fan in oar wurkboek is net spesifisearre yn 'e koade - de makro sil it standert Windows Explorer-finster iepenje en jo kinne elk bestimmingsbestân kieze:

    Neidat jo it bestân selektearje en klik op Iepenje , de makro sil it aktive blêd kopiearje en it doelwurkboek automatysk slute.

    Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedBook As Workbook Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Bestannen (*.xlsx), *.xlsx" ) If fileName False Then Application.ScreenUpdating = False Set currentSheet = Application.activeSheet Set closedBook = Wurkboeken. Iepenje (fileName) currentSheet.Copy After:=closedBook.Sheets(closedBook.Worksheets.Count) closedBook. Slút ( Wier ) Application.ScreenUpdating = Wier Ein As End Sub

    Excel VBA om blêd fan in oar wurkboek te kopiearjen sûnderiepening

    Dizze makro lit jo in wurkblêd kopiearje fan in oar Excel-bestân sûnder it te iepenjen. It kopiearre blêd wurdt ynfoege oan it ein fan it aktive wurkboek.

    Tink der mar om in pear ferfangings te meitsjen yn de koade:

    • C:\Users\XXX\Documents\ Target_Book.xlsx moat feroare wurde yn it eigentlike paad en namme fan it wurkboek wêrút jo in blêd kopiearje wolle.
    • Sheet1 moat ferfongen wurde troch de namme fan it blêd dat jo kopiearje wolle.
    Public Sub CopySheetFromClosedWorkbook() Dim sourceBook As Workbook Application.ScreenUpdating = False Set sourceBook = Wurkboeken. Iepenje ("C:\Users\XXX\Documents\Target_Book.xlsx") sourceBook.Sheets("Sheet1").Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count) sourceBook. Close Application.ScreenUpdating = True End Sub

    Excel VBA om blêd meardere kearen te duplisearje

    Soms moatte jo itselde blêd miskien mear as ien kear duplisearje, bygelyks om ferskate formules te testen op deselde dataset. Dit kin maklik dien wurde mei de folgjende makro.

    Iepenbier Sub DuplicateSheetMultipleTimes () Dim n As Integer On Flater Resume Folgjende n = InputBox ("Hoefolle kopyen fan it aktive blêd wolle jo meitsje?") As n & GT; = 1 Then For numtimes = 1 To n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End As End Sub

    Iepenje it orizjinele blêd, fier de makro út, spesifisearje hoefolle eksimplaren fan it aktive blêdjo wolle meitsje, en klikje op OK :

    Hoe kinne jo blêden duplisearje yn Excel mei VBA

    Om in blêd yn Excel te kopiearjen mei ien fan 'e boppesteande makro's kinne jo de VBA-koade yn jo eigen boek ynfoegje of in makro útfiere út ús foarbyldwurkboek.

    Hoe kinne jo in makro taheakje oan jo wurkboek

    Om it yn te foegjen koade yn jo wurkboek, fier dizze stappen út:

    1. Iepenje it wurkblêd dat jo kopiearje wolle.
    2. Druk op Alt + F11 om de Visual Basic Editor te iepenjen.
    3. Op it linker paniel, rjochtsklik op ThisWorkbook , en klik dan op Ynfoegje > Module .
    4. Plak de koade yn it Koadefinster.
    5. Druk op F5 om de makro út te fieren.

    Foar de detaillearre stap-foar-stap-ynstruksjes, sjoch asjebleaft Hoe VBA-koade ynfoegje yn Excel.

    Hoe útfiere in makro út ús foarbyldwurkboek

    As alternatyf kinne jo ús foarbyldwurkboek downloade nei Duplicate Excel-blêden en de koade dêrwei útfiere.

    It foarbyldwurkboek befettet de folgjende makro's:

    CopySheetToNewWorkbook - kopiearret de cu rhier wurkblêd nei in nij wurkboek.

    CopySelectedSheets - kopiearret meardere blêden dy't jo selektearje nei in nij wurkboek.

    CopySheetToBeginningAnotherWorkbook - kopiearret it aktive blêd nei it begjin fan in oar wurkboek.

    CopySheetToEndAnotherWorkbook - kopiearret it aktive blêd nei it ein fan in oar Excel-bestân.

    CopySheetAndRename - duplicates de aktuele fel,feroaret it lykas oantsjutte troch de brûker, en set de kopy nei alle oare blêden yn it aktive wurkboek.

    CopySheetAndRenamePredefined - duplicates it aktive blêd, jout in hurdkodearre namme oan de kopy en pleatst it oan it ein fan it aktive wurkboek.

    CopySheetAndRenameByCell - makket in kopy fan it aktive blêd en feroaret it op basis fan de selektearre selwearde.

    CopySheetAndRenameByCell2 - kopiearret it aktive blêd en feroaret it op basis fan it hurdkodearre seladres.

    CopySheetToClosedWorkbook - lit jo blêd kopiearje nei in sletten wurkboek.

    CopySheetFromClosedWorkbook - lit jo in blêd kopiearje fan in oar Excel-bestân sûnder it te iepenjen.

    DuplicateSheetMultipleTimes - lit jo in blêd meardere kearen duplisearje yn Excel.

    Om útfiere de makro yn jo Excel, doch gewoan it folgjende:

    1. Iepenje it ynladen wurkboek en aktivearje de ynhâld as jo frege wurde.
    2. Iepenje jo eigen wurkboek en navigearje nei it blêd dat jo wolle kopiearje.
    3. <1 7>Yn jo wurkblêd, druk op Alt + F8, selektearje de makro fan belang, en klik op Utfiere .

    Sa kinne jo duplisearje in blêd yn Excel mei VBA. Ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!

    Michael Brown is in tawijd technology-entûsjast mei in passy foar it ferienfâldigjen fan komplekse prosessen mei software-ark. Mei mear as in desennium ûnderfining yn 'e tech-yndustry hat hy syn feardigens yn Microsoft Excel en Outlook, lykas Google Blêden en Docs, oanskerpe. Michael's blog is wijd oan it dielen fan syn kennis en ekspertize mei oaren, en biedt maklik te folgjen tips en tutorials foar it ferbetterjen fan produktiviteit en effisjinsje. Oft jo in betûfte profesjonele of in begjinner binne, Michael's blog biedt weardefolle ynsjoch en praktysk advys om it measte út dizze essensjele software-ark te heljen.