VBA Copy Workheet - Ako používať Worksheet.Copy?

Kopírovaný pracovný hárok programu Excel VBA

Niekedy bude možno potrebné skopírovať konkrétny rozsah buniek z jedného hárka do druhého alebo do toho istého hárka samotného. V niektorých prípadoch bude možno potrebné skopírovať celý pracovný hárok do nového pracovného hárka. Možno poznáte kopírovanie celého radu buniek, ale čo tak skopírovať celý pracovný hárok pomocou VBA. V tomto článku vám poskytneme podrobné vysvetlenie toho, ako skopírovať pracovný hárok do iného zošita vo VBA.

Worksheet.Copy metóda vo VBA

Najskôr sa pozrite na syntax metódy kopírovania zošita.

Pracovný list (). Kopírovanie (pred, po)

Metóda kopírovania má v sebe dva argumenty Pred a po; obidve sú voliteľné.

  1. Pred: Cieľový pracovný hárok, ktorý kopírujeme. Ak zadáte toto, nemôžete použiť argument After .
  2. Po: Cielený pracovný hárok, ktorý kopírujeme. Ak zadáte toto, nemôžete použiť argument Pred .

Pretože oba tieto parametre sú voliteľné, ak ich necháte prázdne, cieľový hárok sa skopíruje do nového zošita, program Microsoft Excel automaticky vytvorí nový zošit.

Príklady toho istého uvidíme teraz v sekcii príkladov.

Príklady kopírovania pracovného hárka vo VBA

Príklad č

Napríklad si pozrite nižšie uvedené údaje v pracovnom hárku s názvom „Január“.

Vyššie uvedené údaje máme v pracovnom hárku s názvom „Január“ .

  • Vyššie uvedený pracovný hárok teda musíme skopírovať za pracovný hárok s názvom „ Hárok1 “. Najskôr odkazujte na pracovný hárok pomocou objektu pracovných hárkov.

Kód:

Podpracovný list_Copy_Example1 () Pracovné listy ("január") Koniec pod
  • Ďalej zadajte metódu „ Kopírovať “.

Kód:

Sub Worksheet_Copy_Example1 () pracovné hárky ("január"). Kópia End Sub
  • Ako vidíte vyššie, pri začatí písania sa nám nezobrazuje zoznam IntelliSense pre objekt pracovných listov, toto je jeden z významných problémov pre začiatočníkov, ak priamo používajú objekt WORKSHEETS, ale dá sa to vylúčiť použitím premenných, takže definujte premenná ako „ Pracovný list “.

Kód:

Vedľajší pracovný list_Copy_Example1 () Dim Ws ako koncový diel pracovného hárka
  • Teraz pre túto premennú nastavte odkaz na pracovný hárok „ január “.

Kód:

Sub Worksheet_Copy_Example1 () Dim Ws ako sada pracovných hárkov Ws = listy ("január") End Sub
  • Teraz teda pomocou premennej „ Ws “ môžeme ľahko odkazovať na list s názvom „ Január “. Takže zadajte názov premennej „ Ws “ a zvoľte metódu „ Kopírovať “.

Tam môžeme vidieť zoznam IntelliSense, ktorý zobrazuje všetky vlastnosti a metódy objektov pracovných hárkov vďaka deklarácii premennej.

  • Vyberte metódu „ Kopírovať “ a uvidíme argumenty metódy „ Kopírovať “.
  • Pretože musíme skopírovať pracovný hárok po pracovnom hárku „ List1 “, najskôr otvorte argument „ Po “ zadaním názvu argumentu, ako je uvedené nižšie.

Po zvýraznení argumentu sme použili názov argumentu so symbolom „ rovná sa definícia “ (: =)

  • Teraz zadajte názov hárka pomocou objektu „ Hárky “.

Kód:

Vedľajší pracovný hárok_Copy_Example1 () Dim Ws ako sada pracovných hárkov Ws = Pracovné listy ("január") Ws.Copy Po: = Tabuľky ("List1") Koniec Sub
  • Sme hotoví. Týmto sa skopíruje pracovný hárok „ január “ za pracovný hárok „ hárok1 “.

A máme to, skopírovali sme januárový pracovný hárok napravo od „Listu 1“. Jednou z predvolených vecí je, že názov pracovného hárka je rovnaký ako skopírovaný hárok s číselným počtom pracovných hárkov v zátvorke, v tomto prípade je to „(2)“.

  • Ak chcete zmeniť názov pracovného hárka, pridajte do uvedeného kódu časť kódu.
  • 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.
  • Predvolený názov skopírovaného hárka bude rovnaký, za ktorým bude nasledovať počet tohto skopírovaného hárka.

Zaujímavé články...