INHOUDSOPGAWE
Die tutoriaal verskaf 'n versameling makro's om velle in Excel te dupliseer: kopieer en hernoem op grond van selwaarde, kopieer veelvuldige velle, kopieer 'n aktiewe werkblad na 'n ander lêer sonder om dit oop te maak, en meer.
Om velle met die hand in Excel te kopieer is redelik vinnig en eenvoudig ... as dit net een of twee keer uitgevoer word. Om veelvuldige velle verskeie kere te dupliseer is vervelig en tydrowend. Op hierdie bladsy sal jy 'n handvol nuttige makro's vind om hierdie taak te outomatiseer.
Excel VBA om blad na nuwe werkboek te kopieer
Hierdie eenvoudigste eenlyn-makro doen presies wat sy naam aandui - kopieer die aktiewe blad na 'n nuwe werkboek.
Publieke Sub CopySheetToNewWorkbook() activeSheet.Copy End SubKopieer verskeie velle in Excel met VBA
As jy wil kopieer verskeie velle van die aktiewe werkboek na 'n nuwe een, kies al die werkblaaie van belang en voer hierdie makro uit:
Public Sub CopySelectedSheets() ActiveWindow.SelectedSheets.Copy End SubExcel VBA om blad na 'n ander werkboek te kopieer
Afhangende van waar jy die gekopieerde blad wil invoeg, gebruik een van die volgende makro's.
Kopieer blad na die begin van 'n ander werkboek
Hierdie makro kopieer die aktiewe blad voor alle ander werkblaaie in die bestemminglêer, Boek1 in hierdie voorbeeld. Om na 'n ander lêer te kopieer, vervang "Boek1.xlsx" met die volle naam van jou teikenwerkboek.
Publieke SubCopySheetToBeginningAnotherWorkbook() activeSheet.Copy Before:=Workbooks( "Book1.xlsx" ).Sheets(1) End SubKopieer vel na die einde van 'n ander werkboek
Hierdie stuk kode dupliseer die aktiewe werkblad en plaas die kopie aan die einde van Boek1 . Weereens, onthou asseblief om "Boek1.xlsx" met die naam van jou bestemmingswerkboek te vervang.
Publieke Sub CopySheetToEndAnotherWorkbook() activeSheet.Copy After:=Workbooks( "Boek1.xlsx" ).Sheets(Workbooks( "Boek1.xlsx) " ).Werkblaaie.Tel) Einde SubNota. Vir die makro's om te werk, moet die teikenwerkboek op jou hardeskyf of netwerk gestoor word.
Kopieer blad na 'n geselekteerde werkboek
Om die huidige blad na enige oop werkboek te kan kopieer, jy kan 'n UserForm (genaamd UserForm1 ) skep met 'n ListBox kontrole ( named ListBox1 ) en twee knoppies:
Volgende, dubbelklik op die vorm en plak die onderstaande kode in die Kode-venster:
Publieke SelectedWorkbook As String Private Sub UserForm_Initialize() SelectedWorkbook = "" ListBox1.Clear For Every wbk In Application.Workbooks ListBox1.AddItem (wbk.Name) Volgende einde Sub Privaat Sub CommandButton1_Click() As ListBox1.ListIndex > -1 Then SelectedWorkbook = ListBox1.List(ListBox1.ListIndex) End If Me.Hide End Sub Private Sub CommandButton2_Click() SelectedWorkbook = "" Me.Hide End SubMet die UserForm in plek, kan jy een van die volgende gebruik makro's om die te kopieeraktiewe vel na die werkboek van jou keuse.
Kopieer vel na die begin van die geselekteerde werkboek :
Publieke Sub CopySheetToBeginningAnotherWorkbook() Laai GebruikerForm1 GebruikerVorm1.Wys If (GebruikerVorm1.GeselekteerdeWerkboek " " ) Then activeSheet.Copy Before:=Workbooks(UserForm1.SelectedWorkbook).Sheets(1) End If Unload UserForm1 End SubKopieer blad na die einde van die geselekteerde werkboek :
Public Sub CopySheetToEndAnotherWorkbook() Laai UserForm1 UserForm1.Show If (UserForm1.SelectedWorkbook "") Then activeSheet.Copy After:=Workbooks(_ UserForm1.SelectedWorkbook).Sheets( _ Workbooks(UserForm1.SelectedWorkbook)UserForm1.Selected_Workbook). End SubWanneer dit in Excel uitgevoer word, sal die makro vir jou 'n lys wys van alle werkboeke wat tans oopgemaak is. Jy kies die nodige een en klik OK:
Excel-makro om blad te kopieer en hernoem
Wanneer jy 'n blad in Excel kopieer, kry die replika 'n naam in die verstekformaat soos Blad1 (2) . Die volgende makro's kan jou die moeite spaar om die versteknaam handmatig te verander.
Hierdie kode dupliseer die aktiewe werkblad, noem die kopie as "Toetsblad" (jy is vry om dit te vervang met enige ander naam waarvan jy hou) , en plaas die gekopieerde vel aan die einde van die huidige werkboek.
Public Sub CopySheetAndRenamePredefined() activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Hervat Volgende activeSheet.Name ="Test Sheet" End SubOm die gebruiker toe te laat om die naam vir die gekopieerde blad te spesifiseer, gebruik hierdie kode:
Public Sub CopySheetAndRename() Dim newName As String On Error Resume Next newName = InputBox( "Voer die naam vir die gekopieerde werkblad in" ) If newName "" Then activeSheet.Copy After:=Worksheets(Sheets.Count) On Error Resume Next activeSheet.Name = newName End If End SubBy loop, die makro vertoon die volgende invoerblokkie, waarin jy die gewenste naam tik en OK druk:
Excel makro om blad te kopieer en hernoem op grond van selwaarde
In sommige situasies kan dit geriefliker wees om 'n kopie met 'n spesifieke selwaarde te noem, byvoorbeeld 'n kolomopskrif. Hiervoor neem jy eenvoudig die bogenoemde kode en verskaf die waarde van die huidig geselekteerde sel outomaties aan die invoerkassie. Soos met die vorige voorbeeld, sal die kopie aan die einde van die aktiewe werkboek geplaas word.
Die moeilikste deel sal wees om jou gebruikers altyd die korrekte sel te laat kies voordat hulle hardloop die makro :)
Publieke Sub CopySheetAndRenameByCell() Dim newName As String On Error Resume Next newName = InputBox( "Voer die naam in vir die gekopieerde werkblad" , "Kopieer werkblad" , ActiveCell.Value) As nuweNaam "" Toe activeSheet. Copy After:=Worksheets(Sheets.Count) By Error Resume Next activeSheet.Name = newName End If End SubAlternatiewelik kan jy die adres van hardkodeerdie sel waarmee die kopie benoem moet word, sel A1 in die onderstaande kode. Om die gekopieerde werkblad op grond van 'n ander sel te benoem, vervang A1 met 'n toepaslike selverwysing.
Publieke Sub CopySheetAndRenameByCell2() Dim wks As Worksheet Set wks = activeSheet activeSheet.Copy After:=Worksheets(Sheets.Count) If wks.Range ( "A1" ).Waarde "" Toe op fout Hervat Volgende aktiewe Blad.Name = wks.Range( "A1" ).Waarde Einde As wks.Aktiveer End SubMakro om werkblad na 'n geslote werkboek te kopieer
Hierdie makro kopieer die aktiewe blad na die einde van 'n geslote werkboek. Die naam van 'n ander werkboek word nie in die kode gespesifiseer nie - die makro sal die standaard Windows Explorer-venster oopmaak en jou toelaat om enige bestemmingslêer te kies:
Nadat jy die lêer gekies het en klik Open , die makro sal die aktiewe blad kopieer en die teikenwerkboek outomaties toemaak.
Public Sub CopySheetToClosedWorkbook() Dim fileName Dim closedBook As Workbook Dim currentSheet As Worksheet fileName = Application.GetOpenFilename( "Excel Lêers (*.xlsx), *.xlsx" ) If fileName False Then Application.ScreenUpdating = Vals Stel currentSheet = Application.activeSheet Stel closedBook = Werkboeke. Maak (lêernaam) huidige Blad oop. Kopieer Na:=gesloteBoek.Blaaie(gesloteBoek.Werkblaaie.Tel) gesluitBoek. Close ( True ) Application.ScreenUpdating = True End If End SubExcel VBA om blad van 'n ander werkboek te kopieer sonderopening
Hierdie makro stel jou in staat om 'n werkblad vanaf 'n ander Excel-lêer te kopieer sonder om dit oop te maak. Die gekopieerde blad sal aan die einde van die huidige werkboek ingevoeg word.
Onthou net om 'n paar vervangings in die kode te maak:
- C:\Users\XXX\Documents\ Target_Book.xlsx moet verander word na die werklike pad en naam van die werkboek waaruit jy 'n blad wil kopieer.
- Blad1 moet vervang word met die naam van die blad wat jy wil kopieer.
Excel VBA om blad verskeie kere te dupliseer
Soms sal jy dalk dieselfde blad meer as een keer moet dupliseer, byvoorbeeld om verskillende formules op dieselfde datastel te toets. Dit kan maklik met die volgende makro gedoen word.
Publieke Sub DuplicateSheetMultipleTimes() Dim n As Heelgetal By Fout Hervat Volgende n = InputBox( "Hoeveel kopieë van die aktiewe blad wil jy maak?" ) As n > = 1 Then For numtimes = 1 To n activeSheet.Copy After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End If End SubMaak die oorspronklike blad oop, voer die makro uit, spesifiseer hoeveel kopieë van die aktiewe bladjy wil maak, en klik OK :
Hoe om velle in Excel met VBA te dupliseer
Om 'n blad in Excel te kopieer met een van die bogenoemde makro's, kan jy óf die VBA-kode in jou eie boek invoeg óf 'n makro uit ons voorbeeldwerkboek laat loop.
Hoe om 'n makro by jou werkboek te voeg
Om die in te voeg kode in jou werkboek, voer hierdie stappe uit:
- Maak die werkblad oop wat jy wil kopieer.
- Druk Alt + F11 om die Visual Basic Editor oop te maak.
- Aan die linker paneel, regskliek ThisWorkbook , en klik dan Voeg in > Module .
- Plak die kode in die Kode-venster.
- Druk F5 om die makro te laat loop.
Vir die gedetailleerde stap-vir-stap instruksies, sien asseblief Hoe om VBA-kode in Excel in te voeg.
Hoe om te hardloop 'n makro uit ons voorbeeldwerkboek
Alternatiewelik kan jy ons voorbeeldwerkboek na Duplicate Excel Sheets aflaai en die kode daarvandaan laat loop.
Die voorbeeldwerkboek bevat die volgende makros:
CopySheetToNewWorkbook - kopieer die cu huur werkblad na 'n nuwe werkboek.
CopySelectedSheets - kopieer veelvuldige velle wat jy kies na 'n nuwe werkboek.
CopySheetToBeginningAnotherWorkbook - kopieer die aktiewe blad na die begin van 'n ander werkboek.
CopySheetToEndAnotherWorkbook - kopieer die aktiewe blad na die einde van 'n ander Excel-lêer.
CopySheetAndRename - dupliseer die huidige blad,hernoem dit soos deur die gebruiker gespesifiseer, en plaas die kopie na alle ander velle in die huidige werkboek.
CopySheetAndRenamePredefined - dupliseer die aktiewe blad, gee 'n hardkodeerde naam aan die kopie en plaas dit aan die einde van die huidige werkboek.
CopySheetAndRenameByCell - maak 'n kopie van die aktiewe blad en hernoem dit op grond van die geselekteerde selwaarde.
CopySheetAndRenameByCell2 - kopieer die aktiewe blad en hernoem dit gebaseer op die hardgekodeerde seladres.
CopySheetToClosedWorkbook - laat jou toe om blad na 'n geslote werkboek te kopieer.
CopySheetFromClosedWorkbook - stel jou in staat om 'n blad vanaf 'n ander Excel-lêer te kopieer sonder om dit oop te maak.
DuplicateSheetMultipleTimes - laat jou 'n vel in Excel verskeie kere dupliseer.
Om voer die makro in jou Excel uit, doen net die volgende:
- Maak die afgelaaide werkboek oop en aktiveer die inhoud indien gevra.
- Maak jou eie werkboek oop en gaan na die blad wat jy wil hê kopie. <1 7>In jou werkblad, druk Alt + F8, kies die makro van belang, en klik Run .
Dis hoe jy kan dupliseer 'n blad in Excel met VBA. Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!