VBA kopeerimisleht / kopeerimisleht teise töövihikusse

See õpetus hõlmab lehe või töölehe kopeerimist VBA abil.

Kopeeri tööleht uude töövihikusse

Töölehe kopeerimiseks uude töövihikusse tehke järgmist.

1 Arvutustabelid ("Leht1"). Kopeeri

Kopeerige ActiveSheet uude töövihikusse

ActiveSheet'i kopeerimiseks uude töövihikusse tehke järgmist.

1 ActiveSheet. Kopeeri

Kopeerige mitu lehte uude töövihikusse

Mitme lehe kopeerimiseks uude töövihikusse tehke järgmist.

1 ActiveWindow.SelectedSheets.Copy

Kopeeri leht samasse töövihikusse

Alustuseks näitasime teile kõige lihtsamat kopeerimislehtede näidet: lehe (te) kopeerimine uude töövihikusse. Need alltoodud näited näitavad teile, kuidas lehte samas töövihikus kopeerida. Lehe kopeerimisel töövihikusse peate määrama asukoha. Asukoha määramiseks käskite VBA -l töölehe enne või pärast teist töölehte teisaldada.

Kopeeri leht enne teist lehte

Siin määrame lehe kopeerimise ja kleepimise enne lehte2

1 Sheets ("Sheet1"). Copy Before: = Sheets ("Sheet2")

Kopeeri leht enne esimest lehte

Lehe nime määramise asemel saate määrata ka lehe asukoha. Siin kopeerime ja kleepime lehe enne töövihiku esimest lehte.

1 Arvutustabelid ("leht 1"). Kopeeri enne: = lehed (1)

Äsja loodud leht on nüüd töövihiku esimene leht.

Kopeeri leht pärast viimast lehte

Kasutage atribuuti After, et käskida VBA -l kleepida leht PÄRAST teist lehte. Siin kopeerime ja kleepime lehe pärast töövihiku viimast lehte:

1 Arvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count)

Pange tähele, et kasutasime arvutustabeleid. Arvutage töövihiku lehtede arv.

Teisalda leht

Lehte saate liigutada ka töövihikus sarnase süntaksi abil. See kood teisaldab lehe 1 töövihiku lõppu:

1 Arvutustabelid ("Leht1"). Liigu pärast: = Arvutustabelid (Sheets.Count)

Kopeeri ja nimeleht

Pärast lehe kopeerimist ja kleepimist saab äsja loodud lehest ActiveSheet. Nii et meie uue lehe ümbernimetamiseks kasutage lihtsalt ActiveSheet. Nimi:

123456 Sub CopySheetRename1 ()Arvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count)ActiveSheet.Name = "Viimane leht"End Sub

Kui lehe nimi on juba olemas, tekitab ülaltoodud kood tõrke. Selle asemel võime kasutada „On Error Resume Next”, et öelda VBA -le, et see ignoreeriks lehe nimetamist ja jätkaks ülejäänud protseduuriga:

12345678 Sub CopySheetRename2 ()Arvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count)Vea korral Jätka järgmistActiveSheet.Name = "Viimane leht"Viga GoTo 0End Sub

Või kasutage meie funktsiooni RangeExists, et enne lehe kopeerimist proovida, kas lehe nimi on juba olemas:

123456789101112131415161718 Sub CopySheetRename3 ()Kui RangeExists ("LastSheet") SiisMsgBox "Leht on juba olemas."MuiduArvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count)ActiveSheet.Name = "Viimane leht"Lõpp KuiEnd SubFunktsioonivahemik Olemas (WhatSheet kui string, valikuline ByVal WhatRange As String = "A1") BooleaninaHämarduskatse vahemikunaVea korral Jätka järgmistMäära test = ActiveWorkbook.Sheets (WhatSheet). Vahemik (WhatRange)RangeExists = Err.Number = 0Viga GoTo 0Lõppfunktsioon

Kopeeri ja nimeleht lahtri väärtuse alusel

Samuti võiksite kopeerida ja nimetada lehe lahtri väärtuse alusel. See kood nimetab töölehe A1 lahtri väärtuse alusel

12345678 Sub CopySheetRenameFromCell ()Arvutustabelid ("Sheet1"). Kopeeri pärast: = Sheets (Sheets.Count)Vea korral Jätka järgmistActiveSheet.Name = Vahemik ("A1"). VäärtusViga GoTo 0End Sub

Kopeeri tööleht teise töövihikusse

Siiani oleme töötanud arvutustabelite kopeerimisega töövihikus. Nüüd käsitleme näiteid arvutustabelite kopeerimiseks ja kleepimiseks teistesse töövihikutesse. See kood kopeerib lehe teise töövihiku algusesse:

1 Arvutustabelid ("Leht1"). Kopeeri enne: = Töövihikud ("Näide.xlsm"). Lehed (1)

See kopeerib töölehe teise töövihiku lõppu.

1 Arvutustabelid ("Leht1"). Kopeeri pärast: = Töövihikud ("Näide.xlsm"). Lehed (Töövihikud ("Näide.xlsm"). Lehed.arv)

Pange tähele, et asendasime 1 koos Töövihikud (“Näide.xlsm”). Arvutustabelid viimase töölehe saamiseks.

Kopeeri tööleht suletud töövihikusse

Samuti võite kopeerida töölehe suletud töövihikusse. See kood avab suletud töövihiku, et saaksite lehte sinna kopeerida.

123456789 Sub CopySheetToClosedWB ()Application.ScreenUpdating = ValeSet closedBook = Workbooks.Open ("D: \ Dropbox \ excel \ articles \ example.xlsm")Arvutustabelid ("leht 1"). Kopeeri enne: = suletud raamat. Lehed (1)closedBook.Close SaveChanges: = TõsiApplication.ScreenUpdating = TõsiEnd Sub

Kopeerige leht teisest töövihikust seda avamata

Vastupidi, see kood kopeerib töölehe suletud töövihikust, ilma et peaksite töövihikut käsitsi avama.

123456789 Sub CopySheetFromClosedWB ()Application.ScreenUpdating = ValeSet closedBook = Workbooks.Open ("D: \ Dropbox \ excel \ articles \ example.xlsm")closedBook.Sheets ("Sheet1"). Copy Before: = ThisWorkbook.Sheets (1)closedBook.Close SaveChanges: = ValeApplication.ScreenUpdating = TõsiEnd Sub

Pange tähele, et mõlemas näites keelasime ScreenUpdating, nii et protsess töötab taustal.

Kopeerige Exceli leht mitu korda

Loopi abil saate ka Exceli lehte mitu korda paljundada.

1234567891011121314 Sub CopySheetMultipleTimes ()Dim n Nagu täisarvDim i As täisarvVea korral Jätka järgmistn = InputBox ("Mitu koopiat soovite teha?")Kui n> 0 siisSest i = 1 kuni nActiveSheet.Copy After: = ActiveWorkbook.Sheets (Worksheets.Count)EdasiLõpp KuiEnd Sub

Te aitate arengu ala, jagades leht oma sõpradega

wave wave wave wave wave