Hoe kopieer en verplaats je een blad met vba?
U kunt een blad in Excel kopiëren en verplaatsen met behulp van VBA-code, en in deze zelfstudie leren we verschillende manieren om dit te doen.
Kopieer een blad in dezelfde werkmap
Als u een blad in dezelfde werkmap wilt kopiëren, kunt u de volgende code gebruiken waarbij u de kopieermethode hebt gebruikt.
Sheets("Sheet5").Copy Before:=Sheets(1)
In deze code is blad1 het eerste blad van de werkmap en wanneer u deze code uitvoert, wordt het blad met de naam ‘Blad5’ vóór het eerste blad van de werkmap gekopieerd.
En als u het na het eerste blad wilt kopiëren, zou de code als volgt zijn.
Sheets("Sheet5").Copy After:=Sheets(1)
En als u het na het eerste blad wilt kopiëren, zou de code als volgt zijn.
Sheets("Sheet5").Copy Before:=Sheets("Sheet3") Sheets("Sheet5").Copy After:=Sheets("Sheet3")
Wanneer u deze VBA-code uitvoert, kopieert deze de “Blad5” voor en na de “Blad3”.
Met de volgende coderegel kunt u een blad na het laatste blad van de werkmap kopiëren. Het gebruikt sheet.count om het aantal vellen te bepalen en gebruikt vervolgens de telling om het vel als laatste te kopiëren.
Sheets("myNewSheet").Move After:=Sheets(Sheets.Count)
Handige links: Een macro uitvoeren – Macrorecorder – Visual Basic Editor – Handboek voor persoonlijke macro’s
Kopieer een blad in dezelfde werkmap met een nieuwe naam
En als u een blad wilt kopiëren en het vervolgens onmiddellijk wilt hernoemen, moet u de eigenschap name gebruiken, net als de volgende code.
Sheets("Sheet5").Move Before:=Sheets(1) ActiveSheet.Name = "myNewSheet"
Verplaats een blad in dezelfde werkmap
Om een blad in dezelfde werkmap te verplaatsen, moet u de verplaatsingsmethode gebruiken, zoals in de volgende code.
Sheets("Sheet5").Move After:=Sheets(1)
Deze code verplaatst “Blad5” vóór “Blad2”, zoals u kunt zien in de bovenstaande momentopname.
Kopieer een blad naar de nieuwe werkmap
Wanneer u de kopieermethode gebruikt zonder een blad in de huidige werkmap te definiëren, opent VBA een nieuwe werkmap en kopieert dat blad naar die werkmap.
Sheets("Sheet5").Copy
En om een blad naar een nieuwe werkmap te verplaatsen.
Sheets("Sheet5").Move
Kopieer meerdere bladen naar de nieuwe werkmap
Als u meerdere werkbladen tegelijk aan de nieuwe werkmap wilt toevoegen, gebruikt u deze code.
Sheets(Array("Sheet2", "Sheet3", "Sheet4", "Sheet5")).Copy
Met de bovenstaande code wordt een reeks werkbladen gemaakt en deze vervolgens allemaal naar een nieuwe werkmap gekopieerd.
Kopieer een blad naar een andere werkmap
Als u een blad naar een andere werkmap wilt kopiëren die al geopend is, kunt u de naam van de werkmap na of vóór het argument vermelden.
Sheets("Sheet1").Copy Before:=Workbooks("Book1.xlsx").Sheets(1)
De bovenstaande code kopieert Blad1 uit de actieve werkmap en voegt deze toe vóór het eerste blad van Book1.xlsx dat al geopend is.
En als je het wilt verplaatsen.
Sheets("Sheet1").Move Before:=Workbooks("Book1.xlsx").Sheets(1)
Kopieer een blad naar een gesloten werkmap
Er is een manier om een blad naar een gesloten werkmap te kopiëren en u hoeft het niet te openen. Kijk naar de onderstaande code.
Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") Workbooks("Book1.xlsx").Sheets("Sheet2").Copy Before:=mybook.Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub
In deze code hebt u de myBook-variabele en vervolgens is er een werkmap aan toegewezen. We hebben het bijwerken van het scherm uitgeschakeld, zodat de code de taak aan de backend kan uitvoeren.
Kopieer een blad uit een andere werkmap zonder het te openen
Op dezelfde manier kunt u een blad uit een gesloten werkmap kopiëren en verplaatsen. Kijk naar de onderstaande code.
Sub vba_copy_sheet() Dim mybook As Workbook Application.ScreenUpdating = False Set mybook = _ Workbooks.Open _ ("C:UsersDellDesktopsamplefile.xlsx") mybook.Sheets("mySheet").Copy Before:=Workbooks("Book1.xlsx").Sheets(1) mybook.Close SaveChanges:=True Application.ScreenUpdating = True End Sub