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 |