VBA töölehe kopeerimine - kuidas töölehte kasutada. Kopeeri?

Lang L: none (table-of-contents)

Exceli VBA kopeerimise tööleht

Mõnikord peame võib-olla kopeerima kindla vahemiku lahtrid ühelt töölehelt teisele või samale töölehele ise. Mõnel juhul peame võib-olla kogu töölehe kopeerima uuele töölehele. Teile võib olla tuttav mitmete lahtrite kopeerimine, aga kuidas oleks kopeerida kogu tööleht ise VBA abil. Selles artiklis anname teile üksikasjaliku selgituse selle kohta, kuidas töölehte kopeerida VBA teise töövihikusse.

Tööleht. Kopeerimismeetod VBA-s

Esmalt vaadake töölehe kopeerimise meetodi süntaksit.

Tööleht (). Kopeerimine (enne, pärast)

Kopeerimismeetodil on kaks argumenti Enne ja pärast; mõlemad on valikulised.

  1. Enne: sihitud tööleht, mida kopeerime. Selle määramisel ei saa pärast argumenti kasutada .
  2. Pärast: sihitud tööleht, mida kopeerime. Selle määramisel ei saa te argumenti Enne kasutada .

Kuna mõlemad on valikulised argumendid, kui jätate selle tühjaks, kopeeritakse sihitud tööleht uude töövihikusse, loob Microsoft Excel automaatselt uue töövihiku.

Näeme samu näiteid nüüd näidete jaotises.

Näited kopeerimislehest VBA-s

Näide 1

Näiteks vaadake töölehel allpool olevaid andmeid nimega “Jaanuar”.

Ülaltoodud andmed on meil töölehel nimega “Jaanuar” .

  • Seega peame ülaltoodud töölehe kopeerima töölehe nimega “ Sheet1 ”. Esiteks vaadake töölehte objekti abil töölehed.

Kood:

Alam tööleht_Koopia_näide1 () töölehed ("jaanuar") Lõpp alam
  • Järgmisena sisestage meetod " Kopeeri ".

Kood:

Alam tööleht_Koopia_näide1 () töölehed ("jaanuar"). Koopia Lõpeta alam
  • Nagu näete tippimise alustamisel ülal, ei näe me IntheetSense'i töölehtede objekti loendit, see on algajatele üks olulisi probleeme, kui nad otseselt kasutavad objekti WORKSHEETS, kuid selle saab kõrvaldada muutujate abil, nii et määrake muutuja kui „ tööleht “.

Kood:

Alam tööleht_Koopia_näide1 () Dim Ws töölehe lõpu alamrubriigina
  • Nüüd määrake selle muutuja jaoks töölehe viide “ Jaanuar ”.

Kood:

Alam tööleht_Koopia_näide1 () Mõõtke Ws töölehekomplektina Ws = töölehed ("jaanuar") Lõpp alam
  • Nii saame nüüd muutuja “ Ws ” abil hõlpsasti viidata töölehele “ Jaanuar ”. Niisiis sisestage muutuja nimi „ Ws “ ja valige „ Kopeeri “ meetod.

Seal näeme IntelliSense'i loendit, mis näitab tänu töölehe objektide kõiki omadusi ja meetodeid tänu muutuja deklaratsioonile.

  • Valige " Copy " meetod ja näeme argumendid " Copy " meetodit.
  • Kuna peame töölehe kopeerima pärast töölehte “ Sheet1 ”, pääseb kõigepealt juurde argumentile “ After ”, sisestades argumendi nime nagu allpool.

Pärast seda, kui argument on esile tõstetud, kuna oleme kasutanud argumendi nime sümboliga „ definitsiooni järgi võrdne ” (: =)

  • Sisestage nüüd lehe nimi, kasutades objekti “ Sheets ”.

Kood:

Alam tööleht_Koopia_näide1 () Mõõtke Ws töölehtekomplektina Ws = Töölehed ("Jaanuar") Ws.Koopia pärast: = Lehed ("Leht1") Lõpp alam
  • Me saime valmis. See kopeerib töölehe “ Jaanuar ” pärast töölehte “ Leht1 ”.

Sinna minnes oleme jaanuari töölehe kopeerinud „Sheet1” paremale. Üks vaikimisi on siin see, et töölehe nimi on sama kui kopeeritud leht koos sulgudes oleva töölehe numbrilise arvuga, antud juhul on see "(2)".

  • Töölehe nime muutmiseks lisage kooditükk ülaltoodud koodile.
  • 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.
  • Kopeeritud töölehe vaikenimi on sama, millele järgneb selle kopeeritud töölehe arv.

Huvitavad Artiklid...