VBA Kopiraj list / Kopiraj list v drug delovni zvezek

Ta vadnica bo zajemala, kako kopirati list ali delovni list z uporabo VBA.

Kopirajte delovni list v nov delovni zvezek

Če želite kopirati delovni list v nov delovni zvezek:

1 Listi ("List1"). Kopiraj

Kopirajte ActiveSheet v nov delovni zvezek

Če želite kopirati list ActiveSheet v nov delovni zvezek:

1 ActiveSheet.Copy

Kopirajte več listov v nov delovni zvezek

Če želite kopirati več listov v nov delovni zvezek:

1 ActiveWindow.SelectedSheets.Copy

Kopiraj list v istem delovnem zvezku

Začeli smo s predstavitvijo najpreprostejšega primera kopiranja listov: kopiranje listov v nov delovni zvezek. Spodnji primeri vam bodo pokazali, kako kopirati list v istem delovnem zvezku. Ko kopirate list v delovnem zvezku, morate določiti lokacijo. Če želite določiti lokacijo, boste VBA povedali, naj delovni list premakne PRED ali PO drugem delovnem listu.

Kopiraj list pred drugim listom

Tukaj bomo določili kopiranje in lepljenje lista pred listom2

1 Listi ("List1"). Kopiraj prej: = Listi ("List2")

Kopiraj list pred prvim listom

Namesto imena lista lahko določite tudi položaj lista. Tukaj kopiramo in lepimo list pred prvim listom v delovnem zvezku.

1 Listi ("List1"). Kopiraj prej: = Listi (1)

Novonastali list bo zdaj prvi list v delovnem zvezku.

Kopiraj list po zadnjem listu

Z lastnostjo After povejte VBA, naj prilepi list PO drugem listu. Tukaj bomo kopirali in prilepili list po zadnjem listu v delovnem zvezku:

1 List ("List1"). Kopiraj po: = List (Sheets.Count)

Upoštevajte, da smo uporabili Sheets.Count za štetje števila listov v delovnem zvezku.

Premakni list

List lahko tudi premaknete v delovnem zvezku s podobno skladnjo. Ta koda premakne List1 na konec delovnega zvezka:

1 Listi ("List1"). Premakni se po: = Listi (Sheets.Count)

Kopija in imenski list

Po kopiranju in lepljenju lista novonastali list postane ActiveSheet. Če želite preimenovati naš novi list, preprosto uporabite ActiveSheet.Name:

123456 Sub CopySheetRename1 ()List ("List1"). Kopiraj po: = List (Sheets.Count)ActiveSheet.Name = "Zadnji list"End Sub

Če ime lista že obstaja, bo zgornja koda ustvarila napako. Namesto tega lahko uporabimo »On Error Resume Next«, da povemo VBA, naj prezre poimenovanje lista in nadaljuje s preostalim postopkom:

12345678 Sub CopySheetRename2 ()List ("List1"). Kopiraj po: = List (Sheets.Count)On Napaka Nadaljuj NaprejActiveSheet.Name = "Zadnji list"Pri napaki Pojdi na 0End Sub

Ali pa uporabite našo funkcijo RangeExists, da preizkusite, ali ime lista že obstaja, preden poskusite kopirati list:

123456789101112131415161718 Sub CopySheetRename3 ()Če RangeExists ("LastSheet") PotemMsgBox "List že obstaja."Sicer paList ("List1"). Kopiraj po: = List (Sheets.Count)ActiveSheet.Name = "Zadnji list"Konec ČeEnd SubFunkcija RangeExists (WhatSheet As String, Izbirno ByVal WhatRange As String = "A1") Kot BooleanZatemni preskus kot obsegOn Napaka Nadaljuj NaprejNastavi test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Pri napaki Pojdi na 0Končana funkcija

Kopirajte in imenski list glede na vrednost celice

Morda boste želeli tudi kopirati in poimenovati list na podlagi vrednosti celice. Ta koda bo imenovala delovni list glede na vrednost celice v A1

12345678 Sub CopySheetRenameFromCell ()List ("List1"). Kopiraj po: = List (Sheets.Count)On Napaka Nadaljuj NaprejActiveSheet.Name = Obseg ("A1"). VrednostPri napaki Pojdi na 0End Sub

Kopirajte delovni list v drug delovni zvezek

Doslej smo delali s kopiranjem listov v delovni zvezek. Zdaj bomo obravnavali primere kopiranja in lepljenja listov v druge delovne zvezke. Ta koda bo kopirala list na začetek drugega delovnega zvezka:

1 Listi ("List1"). Kopiraj pred: = Delovni zvezki ("Primer.xlsm"). Listi (1)

To bo kopiralo delovni list na konec drugega delovnega zvezka.

1 Listi ("List1"). Kopiraj po: = Delovni zvezki ("Primer.xlsm"). Listi (Delovni zvezki ("Primer.xlsm"). Listi. Število)

Upoštevajte, da smo zamenjali 1 z Delovni zvezki (»Primer.xlsm«). Listi. Štetje da dobite zadnji delovni list.

Kopirajte delovni list v zaprt delovni zvezek

Delovni list boste morda želeli kopirati tudi v zaprt delovni zvezek. Ta koda odpre zaprt delovni zvezek, tako da lahko vanj kopirate list.

123456789 Sub CopySheetToClosedWB ()Application.ScreenUpdating = NapačnoSet closedBook = Workbooks.Open ("D: \ Dropbox \ excel \ articles \ example.xlsm")Listi ("List1"). Kopiraj pred: = zaprtaKnjiga. Listi (1)closedBook.Close SaveChanges: = TrueApplication.ScreenUpdating = ResEnd Sub

Kopirajte list iz drugega delovnega zvezka, ne da bi ga odprli

Nasprotno pa bo ta koda kopirala delovni list IZ zaprtega delovnega zvezka, ne da bi vam bilo treba ročno odpreti delovni zvezek.

123456789 Sub CopySheetFromClosedWB ()Application.ScreenUpdating = NapačnoSet closedBook = Workbooks.Open ("D: \ Dropbox \ excel \ articles \ example.xlsm")closedBook.Sheets ("Sheet1"). Kopiraj pred: = ThisWorkbook.Sheets (1)closedBook.Close SaveChanges: = FalseApplication.ScreenUpdating = ResEnd Sub

Upoštevajte, da smo v obeh primerih onemogočili posodabljanje zaslona, ​​tako da postopek teče v ozadju.

Večkrat podvojite Excelov list

List Excel lahko tudi večkrat podvojite z uporabo zanke.

1234567891011121314 Sub CopySheetMultipleTimes ()Dim n kot celo številoDim i kot celo številoOn Napaka Nadaljuj Naprejn = InputBox ("Koliko kopij želite narediti?")Če je n> 0, potemZa i = 1 proti nActiveSheet.Copy After: = ActiveWorkbook.Sheets (Delovni listi. Število)NaslednjiKonec ČeEnd Sub

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave