Copiați foaia de lucru VBA - Cum se folosește foaia de lucru. Copiați?

Foaie de lucru pentru copiere Excel VBA

Uneori este posibil să fie nevoie să copiem un anumit interval de celule dintr-o foaie de lucru în alta sau în aceeași foaie de lucru. În unele cazuri, poate fi necesar să copiem întreaga foaie de lucru într-o foaie de lucru nouă. Este posibil să fiți familiarizați cu copierea unei game de celule, dar ce zici de copierea întregii foi de lucru folosind VBA. În acest articol, vă vom oferi o explicație detaliată a modului de copiere a foii de lucru într-un alt registru de lucru în VBA.

Foaie de lucru. Metoda de copiere în VBA

În primul rând, aruncați o privire asupra sintaxei metodei de copiere a foii de lucru.

Foaie de lucru (). Copiere (Înainte, După)

Metoda de copiere conține două argumente înainte și după; ambele sunt opționale.

  1. Înainte: foaia de lucru vizată pe care o copiem. Dacă specificați acest lucru, nu puteți utiliza argumentul After .
  2. După: foaia de lucru vizată pe care o copiem. Dacă specificați acest lucru, nu puteți utiliza argumentul Before .

Deoarece ambele sunt argumente opționale dacă l-ați lăsat necompletat, atunci foaia de lucru vizată va fi copiată într-un registru de lucru nou, Microsoft Excel creează automat un registru de lucru nou.

Vom vedea exemple ale acelora acum în secțiunea de exemple.

Exemple de copiere a foii de lucru în VBA

Exemplul nr. 1

De exemplu, priviți datele de mai jos în foaia de lucru numită „Ianuarie”.

Datele de mai sus le avem în foaia de lucru denumită „ianuarie” .

  • Deci, trebuie să copiem foaia de lucru de mai sus după foaia de lucru numită „ Sheet1 ”. În primul rând, consultați foaia de lucru utilizând obiectul foi de lucru.

Cod:

Sub Foaie de lucru_Copie_Exemplu1 () Foi de lucru („Ianuarie”) Încheiere sub
  • Apoi, introduceți metoda „ Copiere ”.

Cod:

Sub Foaie de lucru_Copie_Exemplu1 () Foi de lucru („ianuarie”)
  • După cum puteți vedea mai sus când începeți să tastați, nu vom vedea lista IntelliSense pentru obiectele de lucru, aceasta este una dintre problemele semnificative pentru începători dacă utilizează direct obiectul WORKSHEETS, dar acest lucru poate fi eliminat folosind variabile, deci definiți variabilă ca „ Foaie de lucru ”.

Cod:

Sub Foaie de lucru_Copie_Exemplu1 () Dim Ws ca Foaie de lucru Sub Sub
  • Acum, pentru această variabilă, setați referința foii de lucru „ Ianuarie ”.

Cod:

Sub Foaie de lucru_Copie_Exemplu1 () Dim Ws ca set de foaie de lucru Ws = foi de lucru („ianuarie”) Încheiere sub
  • Deci, acum folosind variabila „ Ws ” ne putem referi cu ușurință la foaia de lucru numită „ Ianuarie ”. Deci, introduceți numele variabilei „ Ws ” și alegeți metoda „ Copiere ”.

Acolo mergem, putem vedea lista IntelliSense care arată toate proprietățile și metodele obiectelor foii de lucru, datorită declarației variabilei.

  • Alegeți metoda „ Copiere ” și putem vedea argumente ale metodei „ Copiere ”.
  • Deoarece trebuie să copiem foaia de lucru după foaia de lucru „ Foaia1 ”, accesați mai întâi argumentul „ După ” introducând numele argumentului ca cel de mai jos.

După ce argumentul este evidențiat, deoarece am folosit numele argumentului cu simbolul „ egal prin definiție ” (: =)

  • Acum introduceți numele foii folosind obiectul „ Foi ”.

Cod:

Sub Foaie de lucru_Copie_Exemplu1 () Dim Ws Ca set de foaie de lucru Ws = foi de lucru („ianuarie”) Ws.Copy After: = Foi („Foaie1”) Încheiere sub
  • Am terminat. Aceasta va copia foaia de lucru „ Ianuarie ” după foaia de lucru „ Foaia1 ”.

Iată, am copiat foaia de lucru din ianuarie în dreapta „Foaia1”. Unul dintre lucrurile implicite aici este că numele foii de lucru este la fel ca și foaia copiată cu un număr numeric al foii de lucru din paranteză, în acest caz, este „(2)”.

  • Pentru a schimba numele foii de lucru, adăugați codul de mai jos la codul de mai sus.
  • 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.
  • Numele implicit al foii de lucru copiate va fi același urmat de numărul acelei foi de lucru copiate.

Articole interesante...