VBA Copy Worksheet - Hvordan bruges Worksheet.Copy?

Indholdsfortegnelse

Excel VBA-kopieringsark

Til tider kan det være nødvendigt at kopiere et bestemt celleområde fra et regneark til et andet eller i det samme regneark selv. I nogle tilfælde kan det være nødvendigt at kopiere hele regnearket til et nyt regneark. Du er måske fortrolig med at kopiere en række celler, men hvad med at kopiere hele regnearket selv ved hjælp af VBA. I denne artikel vil vi give dig en detaljeret forklaring på, hvordan du kopierer regnearket til en anden projektmappe i VBA.

Arbejdsark. Kopimetode i VBA

Først skal du kigge på syntaksen for regnearkets kopimetode.

Arbejdsark (). Kopi (før, efter)

Kopimetoden har to argumenter i sig Før og efter; begge disse er valgfri.

  1. Før: Det målrettede regneark, som vi kopierer. Hvis du angiver dette, kan du ikke bruge After- argumentet.
  2. Efter: Det målrettede regneark, som vi kopierer. Hvis du angiver dette, kan du ikke bruge argumentet Før .

Da begge disse er valgfri argumenter, hvis du lader den være tom, så kopieres det målrettede regneark til en ny projektmappe, Microsoft Excel opretter automatisk en ny projektmappe.

Vi vil se eksempler på det samme nu i afsnittet eksempler.

Eksempler på kopieringsark i VBA

Eksempel nr. 1

Se for eksempel nedenstående data i regnearket med navnet ”Januar”.

Vi har ovenstående data i regnearket med navnet “Januar” .

  • Så vi er nødt til at kopiere ovenstående regneark efter regnearket med navnet " Sheet1 ". Først henvises til regnearket ved hjælp af regnearkobjektet.

Kode:

Under regneark_Kopi_eksempel1 () regneark ("januar") Afslut sub
  • Indtast derefter " Kopi " -metoden.

Kode:

Under regneark_Kopi_eksempel1 () regneark ("januar"). Kopi afslut sub
  • Som du kan se ovenfor, når du begynder at skrive, kan vi ikke se IntelliSense-listen til regnearkobjekt, dette er et af de væsentligste problemer for begyndere, hvis de direkte bruger WORKSHEETS-objektet, men dette kan elimineres ved hjælp af variabler, så definer variabel som " Arbejdsark ".

Kode:

Under regneark_Kopi_eksempel1 () Dim Ws som regneark slut sub
  • Indstil nu henvisningen til regnearket " januar " for denne variabel .

Kode:

Under regneark_Kopi_eksempel1 () Dim Ws som regneark sæt Ws = regneark ("januar") Afslut sub
  • Så ved hjælp af variablen " Ws " kan vi let henvise til regnearket med navnet " Januar ". Så indtast variabelnavnet " Ws " og vælg " Kopi " -metoden.

Der går vi, vi kan se IntelliSense-listen, der viser alle egenskaber og metoder til regnearkobjekter takket være variabeldeklarationen.

  • Vælg " Kopi " -metoden, og vi kan se argumenter for " Kopi " -metoden.
  • Da vi er nødt til at kopiere regnearket efter regnearket " Sheet1 ", skal du først få adgang til " After " -argumentet ved at indtaste argumentnavnet som nedenfor.

Efter at argumentet er fremhævet, da vi har brugt argumentnavnet med " lige efter definition " symbol (: =)

  • Indtast nu arknavnet ved hjælp af " Sheets " -objektet.

Kode:

Under regneark_Kopi_eksempel1 () Dim Ws som regneark sæt Ws = Arbejdsark ("januar") Ws.Kopi efter: = Ark ("Ark1") Afslut sub
  • Vi er færdige. Dette vil kopiere regnearket ” Januar ” efter regnearket ” Ark1 ”.

Derefter har vi kopieret januar-regneark til højre for "Sheet1". En af standard ting her er navnet på regnearket er det samme som det kopierede ark med et numerisk antal af regnearket i parentes, i dette tilfælde er det “(2)”.

  • For at ændre regnearkets navn skal du tilføje nedenstående stykke kode til ovenstående kode.
  • So the overall code is below.

Code:

Sub Worksheet_Copy_Example1() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets("Sheet1") ActiveSheet.Name = “New Copied Sheet” End Sub
  • Now run the code and see what happens.

Example #2

Similarly, if you want to copy the worksheet “Sheet1” before the worksheet “January” uses the below code.

Code:

Sub Worksheet_Copy_Example2() Dim Ws As Worksheet Set Ws = Worksheets("Sheet1") Ws.Copy Before:=Sheets("January") ActiveSheet.Name = "New Sheet1" End Sub
  • So this will create a sheet-like the below.

Example #3

Similarly, if you want to copy the worksheet after the last worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example3() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = "Last Sheet" End Sub

Output:

The only change we made is we have used “Sheets. Count” method to count how many sheets are there in the workbook.

Example #4

Similarly, if you want to copy the worksheet before the first worksheet then use the below code.

Code:

Sub Worksheet_Copy_Example4() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:=Sheets(1) ActiveSheet.Name = "First Sheet" End Sub

Output:

In this case, we have used “Sheets(1)” so this will place the worksheet copied before the first worksheet of the workbook.

Things to Remember

  • Suppose you don’t use either Before & After argument of the Worksheet. Copy worksheets will be copied to the new workbook altogether.
  • Standardkopieret regnearknavn vil være det samme efterfulgt af antallet af det kopierede regneark.

Interessante artikler...