VBA Copy Worksheet - Kako uporabiti Worksheet.Copy?

Excel VBA Copy Delovni list

Včasih bomo morda morali kopirati določen obseg celic z enega delovnega lista na drugega ali na samem istem delovnem listu. V nekaterih primerih bomo morda morali celoten delovni list kopirati na nov. Morda ste seznanjeni s kopiranjem obsega celic, kaj pa kopiranje celotnega delovnega lista z uporabo VBA. V tem članku vam bomo podrobno razložili, kako kopirati delovni list v drug delovni zvezek v VBA.

Delovni list.Kopija metode v VBA

Najprej si oglejte sintakso metode kopiranja delovnega lista.

Delovni list (). Kopiraj (pred, po)

Metoda kopiranja vsebuje dva argumenta Pred in po; oba sta neobvezna.

  1. Pred: ciljni delovni list, ki ga kopiramo. Če to določite, ne morete uporabiti argumenta After .
  2. Po: Ciljni delovni list, ki ga kopiramo. Če to določite, ne morete uporabiti argumenta Before .

Ker sta oba neobvezna argumenta, če ga pustite prazen, bo ciljni delovni list kopiran v nov delovni zvezek, Microsoft Excel samodejno ustvari nov delovni zvezek.

Primere tega bomo videli zdaj v razdelku s primeri.

Primeri kopiranja delovnega lista v VBA

Primer # 1

Oglejte si na primer spodnje podatke v delovnem listu z imenom »Januar«.

Zgornje podatke imamo na delovnem listu z imenom »januar« .

  • Torej moramo kopirati zgornji delovni list za delovnim listom z imenom „ Sheet1 “. Najprej se obrnite na delovni list z uporabo predmeta delovni listi.

Koda:

Sub Worksheet_Copy_Example1 () Worksheets ("January") End Sub
  • Nato vnesite metodo » Kopiraj «.

Koda:

Sub Worksheet_Copy_Example1 () Worksheets ("January"). Copy End Sub
  • Kot lahko vidite zgoraj, ko začnemo tipkati, ne vidimo predmeta IntelliSense za seznam delovnih listov, je to ena od pomembnih težav za začetnike, če neposredno uporabljajo objekt WORKSHEETS, vendar je to mogoče odpraviti z uporabo spremenljivk, zato določite spremenljivka kot " Delovni list ".

Koda:

Sub Worksheet_Copy_Example1 () Dim Ws as Worksheet End Sub
  • Zdaj za to spremenljivko nastavite sklic na delovni list » januar «.

Koda:

Sub Worksheet_Copy_Example1 () Dim Ws as Worksheet Set Ws = Worksheets ("January") End Sub
  • Zdaj, s pomočjo spremenljivke " Ws ", se lahko enostavno sklicujemo na delovni list z imenom " Januar ". Torej vnesite ime spremenljivke “ Ws ” in izberite način “ Copy ”.

Tam lahko vidimo seznam IntelliSense, ki prikazuje vse lastnosti in metode predmetov delovnega lista, zahvaljujoč deklaraciji spremenljivke.

  • Izberite metodo » Kopiraj « in videli bomo argumente metode » Kopiraj «.
  • Ker moramo kopirati delovni list za delovnim listom " Sheet1 ", najprej dostopite do argumenta " After " tako, da vnesete ime argumenta, kot je prikazano spodaj.

Ko je argument poudarjen, ker smo uporabili ime argumenta s simbolom " enako po definiciji " (: =)

  • Zdaj vnesite ime lista z uporabo predmeta » Sheets «.

Koda:

Sub Worksheet_Copy_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("January") Ws.Copy After: = Sheets ("Sheet1") End Sub
  • Končali smo. S tem boste kopirali delovni list » Januar « za delovnim listom » List1 «.

Tako smo kopirali januarski delovni list na desni strani »List1«. Ena od privzetih stvari tukaj je ime delovnega lista, ki je enako kot kopirani list s številskim številom delovnega lista v oklepaju, v tem primeru je »(2)«.

  • Če želite spremeniti ime delovnega lista, dodajte spodnji del kode v zgornjo kodo.
  • 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.
  • Privzeto kopirano ime delovnega lista bo enako, čemur bo sledilo število kopiranega delovnega lista.

Zanimive Članki...