VBA Copy Worksheet - Hvordan bruke Worksheet.Copy?

Innholdsfortegnelse

Excel VBA Copy-regneark

Noen ganger kan det hende vi trenger å kopiere et bestemt celleområde fra ett regneark til et annet eller i det samme regnearket. I noen tilfeller kan det hende vi må kopiere hele regnearket til et nytt regneark. Du kan være kjent med å kopiere en rekke celler, men hva med å kopiere hele regnearket ved hjelp av VBA. I denne artikkelen vil vi gi deg en detaljert forklaring på hvordan du kopierer regnearket til en annen arbeidsbok i VBA.

Arbeidsark. Kopimetode i VBA

Først, ta en titt på syntaksen til regnearkekopimetoden.

Arbeidsark (). Kopi (før, etter)

Kopimetoden har to argumenter i seg Før og etter; begge disse er valgfrie.

  1. Før: Det målrettede regnearket vi kopierer. Hvis du spesifiserer dette, kan du ikke bruke After- argumentet.
  2. Etter: Det målrettede regnearket vi kopierer. Hvis du spesifiserer dette, kan du ikke bruke argumentet Before .

Siden begge disse er valgfrie argumenter, hvis du la det være tomt, vil det målrettede regnearket bli kopiert til en ny arbeidsbok. Microsoft Excel oppretter automatisk en ny arbeidsbok.

Vi vil se eksempler på det samme nå i eksemplene.

Eksempler på kopieringsark i VBA

Eksempel 1

Se for eksempel på dataene nedenfor i regnearket med navnet ”Januar”.

Vi har de ovennevnte dataene i regnearket kalt “januar” .

  • Så vi må kopiere regnearket ovenfor etter regnearket med navnet “ Sheet1 ”. Først henvises til regnearket ved å bruke regnearkobjektet.

Kode:

Under regneark_Kopi_eksempel1 () Regneark ("januar") Slutt sub
  • Deretter skriver du inn " Kopier " -metoden.

Kode:

Under regneark_Kopi_eksempel1 () Regneark ("januar"). Kopi Slutt sub
  • Som du kan se ovenfor når du begynner å skrive, får vi ikke se IntelliSense-listen for regnearkobjekt. Dette er et av de viktigste problemene for nybegynnere hvis de bruker WORKSHEETS-objekt direkte, men dette kan elimineres ved å bruke variabler, så definer variabel som “ Arbeidsark ”.

Kode:

Sub Worksheet_Copy_Example1 () Dim Ws as Worksheet End Sub
  • Nå angir du denne variabelen referansen til regnearket " januar ".

Kode:

Under regneark_Kopi_eksempel1 () Dim Ws som regneark sett Ws = regneark ("januar") Slutt sub
  • Så, nå med variabelen " Ws " kan vi enkelt referere til regnearket med navnet " Januar ". Så skriv inn variabelnavnet " Ws " og velg " Copy " -metoden.

Der kan vi se IntelliSense-listen som viser alle egenskapene og metodene til regnearkobjekter, takket være variabelerklæringen.

  • Velg " Kopier " -metoden, og vi kan se argumenter for " Kopier " -metoden.
  • Siden vi trenger å kopiere regnearket etter regnearket “ Sheet1 ”, må du først få tilgang til “ After ” -argumentet ved å skrive inn argumentnavnet som nedenfor.

After the argument is highlighted since we have used argument name with “equal by definition” symbol (:=)

  • Now enter the sheet name by using the “Sheets” object.

Code:

Sub Worksheet_Copy_Example1() Dim Ws As Worksheet Set Ws = Worksheets("January") Ws.Copy After:= Sheets("Sheet1") End Sub
  • We are done. This will copy the worksheet “January” after the worksheet “Sheet1”.

There you go we have copied January worksheet to the right of “Sheet1”. One of the default things here is the name of the worksheet is as same as the copied sheet with a numerical count of the worksheet in the bracket, in this case, it is “(2)”.

  • To change the worksheet name, add below piece of code to the above code.
  • 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.
  • Standardkopierte regnearknavn vil være det samme etterfulgt av antall kopierte regneark.

Interessante artikler...