Ynhâldsopjefte
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 SubKopieer 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 SubExcel 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 SubKopiearje 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 SubOpmerking. 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 SubMei 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 SubKopiearje 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 SubAs 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 SubOm 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 SubBy 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 SubAlternatyf 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 SubMakro 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 SubExcel 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.
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 SubIepenje 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:
- Iepenje it wurkblêd dat jo kopiearje wolle.
- Druk op Alt + F11 om de Visual Basic Editor te iepenjen.
- Op it linker paniel, rjochtsklik op ThisWorkbook , en klik dan op Ynfoegje > Module .
- Plak de koade yn it Koadefinster.
- 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:
- Iepenje it ynladen wurkboek en aktivearje de ynhâld as jo frege wurde.
- Iepenje jo eigen wurkboek en navigearje nei it blêd dat jo wolle kopiearje. <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!