VBA Kopiraj radni list - Kako koristiti Worksheet.Copy?

Excel VBA Kopiraj radni list

Ponekad ćemo možda trebati kopirati određeni raspon ćelija s jednog radnog lista na drugi ili u isti radni list. U nekim ćemo slučajevima možda trebati kopirati cijeli radni list na novi. Možda vam je poznato kopiranje niza ćelija, ali kako bi bilo da kopirate cijeli radni list pomoću VBA. U ovom ćemo vam članku dati detaljno objašnjenje kako kopirati radni list u drugu radnu knjigu u VBA.

Radni list.Kopija metode u VBA

Prvo pogledajte sintaksu metode Kopiranje radnog lista.

Radni list (). Kopija (prije, poslije)

Metoda kopiranja sadrži dva argumenta Prije i poslije; oba su neobavezna.

  1. Prije: Ciljani radni list koji kopiramo. Ako to odredite, ne možete koristiti argument After .
  2. Nakon: Ciljani radni list koji kopiramo. Ako to odredite, ne možete koristiti argument Before .

Budući da su oba ovo neobavezni argumenti ako ste ostavili prazno, ciljani radni list kopirat će se u novu radnu knjigu, Microsoft Excel automatski stvara novu radnu knjigu.

Primjere za iste vidjet ćemo sada u odjeljku za primjere.

Primjeri kopiranja radnog lista u VBA

Primjer # 1

Na primjer, pogledajte dolje navedene podatke u radnom listu s nazivom "Siječanj".

Gore navedene podatke imamo u radnom listu nazvanom "Siječanj" .

  • Dakle, trebamo kopirati gornji radni list nakon radnog lista s nazivom „ List1 “. Prvo se uputite na radni list pomoću objekta radnih listova.

Kodirati:

Sub Worksheet_Copy_Example1 () Worksheets ("January") End Sub
  • Zatim unesite metodu " Kopiraj ".

Kodirati:

Sub Worksheet_Copy_Example1 () Worksheets ("January"). Copy End Sub
  • Kao što gore možete vidjeti kada započnete s tipkanjem, ne vidimo objekt IntelliSense za popis radnih listova, ovo je jedan od značajnih problema za početnike ako izravno koriste objekt WORKSHEETS, ali to se može ukloniti korištenjem varijabli, zato definirajte varijabla kao " Radni list ".

Kodirati:

Sub Worksheet_Copy_Example1 () Zatamni W kao radni list Kraj Sub
  • Sada za ovu varijablu postavite referencu radnog lista " Siječanj ".

Kodirati:

Podradni list_Copy_Example1 () Zatamni Ws kao set radnog lista Ws = Radni listovi ("Siječanj") Kraj pod
  • Dakle, sada pomoću varijable " Ws " možemo lako uputiti radni list nazvan " Siječanj ". Dakle, unesite naziv varijable " Ws " i odaberite metodu " Copy ".

Ondje možemo vidjeti popis IntelliSense koji prikazuje sva svojstva i metode objekata radnog lista, zahvaljujući deklaraciji varijabli.

  • Odaberite metodu " Kopiraj ", a mi možemo vidjeti argumente metode " Kopiraj ".
  • Budući da radni list moramo kopirati nakon radnog lista " Sheet1 ", prvo pristupite argumentu " After " unosom imena argumenta kao što je dolje.

Nakon što je argument istaknut, jer smo koristili ime argumenta sa simbolom " jednako po definiciji " (: =)

  • Sada unesite naziv lista pomoću objekta " Sheets ".

Kodirati:

Podradni list_Copy_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("January") Ws.Copy After: = Sheets ("Sheet1") End Sub
  • Mi smo gotovi. Ovo će kopirati radni list " Siječanj " nakon radnog lista " List1 ".

Eto, kopirali smo radni list za siječanj s desne strane "Sheet1". Jedna od zadanih stvari ovdje je naziv radnog lista jednako je kao i kopirani list s brojčanim brojem radnog lista u zagradi, u ovom slučaju to je "(2)".

  • Da biste promijenili naziv radnog lista, dodajte donji dio koda gornjem kodu.
  • 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.
  • Zadani naziv kopiranog radnog lista bit će isti, nakon čega slijedi broj tog kopiranog radnog lista.

Zanimljivi članci...