Kopírovací list VBA / Kopírovať list do iného zošita

Tento tutoriál sa bude zaoberať kopírovaním hárka alebo pracovného hárka pomocou jazyka VBA.

Skopírujte pracovný hárok do nového zošita

Ak chcete skopírovať pracovný hárok do nového zošita:

1 Tabuľky („List1“). Kopírovať

Skopírujte ActiveSheet do nového zošita

Ak chcete skopírovať ActiveSheet do nového zošita:

1 ActiveSheet.Copy

Skopírujte viac listov do nového zošita

Ak chcete skopírovať viacero hárkov do nového zošita:

1 ActiveWindow.SelectedSheets.Copy

Kopírovať list do rovnakého zošita

Na začiatku sme vám ukázali najjednoduchší príklad kopírovania hárkov: kopírovanie hárkov do nového zošita. Nasledujúce príklady vám ukážu, ako skopírovať hárok do rovnakého zošita. Pri kopírovaní listu v rámci knihy Worbook musíte určiť umiestnenie. Ak chcete určiť umiestnenie, poviete VBA, aby presunula pracovný hárok PRED alebo PO inom pracovnom hárku.

Kopírovať list pred ďalším listom

Tu zadáme kopírovanie a prilepenie hárka pred hárok2

1 Listy („List1“). Kopírovať pred: = Listy („List2“)

Kopírovať list pred prvým listom

Namiesto zadania názvu hárka môžete tiež určiť pozíciu hárka. Tu kopírujeme a prilepujeme list pred prvým listom v zošite.

1 Listy („List1“). Kopírovať pred: = listy (1)

Novovytvorený list bude teraz prvým listom v zošite.

Kopírovať list za posledným listom

Pomocou vlastnosti After poviete VBA, aby prilepila hárok PO ďalšom hárku. Tu skopírujeme a prilepíme list za posledný list v zošite:

1 Tabuľky ("List1"). Kopírovať po: = Listy (Sheets.Count)

Všimnite si, že sme použili Sheets.Count na spočítanie počtu hárkov v zošite.

Presunúť list

List môžete v rámci zošita presúvať aj pomocou podobnej syntaxe. Tento kód presunie list 1 na koniec zošita:

1 Tabuľky ("List1"). Presunúť za: = Tabuľky (Sheets.Count)

Kopírovať a pomenovať list

Po skopírovaní a vložení hárka sa z novovytvoreného hárka stane ActiveSheet. Ak chcete náš nový hárok premenovať, jednoducho použite ActiveSheet.Name:

123456 Sub CopySheetRename1 ()Tabuľky ("List1"). Kopírovať po: = Listy (Sheets.Count)ActiveSheet.Name = "Posledný list"Koniec pod

Ak názov hárka už existuje, vyššie uvedený kód vygeneruje chybu. Namiesto toho môžeme pomocou „On Error Resume Next“ povedať VBA, aby ignorovala pomenovanie hárka a pokračovala zvyšným postupom:

12345678 Sub CopySheetRename2 ()Tabuľky ("List1"). Kopírovať po: = Listy (Sheets.Count)Pri chybe Pokračovať ďalejActiveSheet.Name = "Posledný list"Pri chybe GoTo 0Koniec pod

Alebo pomocou našej funkcie RangeExists vyskúšajte, či názov hárka už existuje, než sa pokúsite skopírovať hárok:

123456789101112131415161718 Sub CopySheetRename3 ()Ak RangeExists („LastSheet“) PotomMsgBox „List už existuje.“InakTabuľky ("List1"). Kopírovať po: = Listy (Sheets.Count)ActiveSheet.Name = "Posledný list"Koniec AkKoniec podRozsah funkciíExistuje (aký list ako reťazec, voliteľné podľa veľkosti ako reťazec = "A1") ako boolovskýDim test As RangePri chybe Pokračovať ďalejNastaviť test = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Pri chybe GoTo 0Koncová funkcia

Skopírujte a pomenujte list podľa hodnoty bunky

Môžete tiež skopírovať a pomenovať hárok podľa hodnoty bunky. Tento kód pomenuje pracovný hárok na základe hodnoty bunky v A1

12345678 Sub CopySheetRenameFromCell ()Tabuľky ("List1"). Kopírovať po: = Listy (Sheets.Count)Pri chybe Pokračovať ďalejActiveSheet.Name = Rozsah ("A1"). HodnotaPri chybe GoTo 0Koniec pod

Skopírujte pracovný hárok do iného zošita

Doteraz sme pracovali s kopírovaním hárkov v zošite. Teraz si rozoberieme príklady na kopírovanie a prilepovanie hárkov do iných zošitov. Tento kód skopíruje hárok na začiatok iného zošita:

1 Listy („List1“). Kopírovať pred: = zošity („Example.xlsm“). Listy (1)

Tým sa skopíruje pracovný list na koniec iného zošita.

1 Listy ("List1"). Kopírovať po: = zošity ("Example.xlsm"). Listy (zošity ("Example.xlsm"). Sheets.Count)

Všimnite si, že sme vymenili 1 s Zošity („Príklad.xlsm“). Listy. Počet získať posledný pracovný list.

Skopírujte pracovný hárok do zatvoreného zošita

Môžete tiež skopírovať pracovný hárok do zatvoreného zošita. Tento kód otvorí zatvorený zošit, takže do neho môžete skopírovať list.

123456789 Sub CopySheetToClosedWB ()Application.ScreenUpdating = FalseNastaviť closedBook = zošity. Otvorené ("D: \ Dropbox \ excel \ articles \ example.xlsm")Listy („List1“). Kopírovať pred: = zatvorenáKniha. Listy (1)closedBook.Close SaveChanges: = TrueApplication.ScreenUpdating = TrueKoniec pod

Skopírujte hárok z iného zošita bez jeho otvorenia

Naopak, tento kód skopíruje pracovný hárok Z uzavretého zošita bez toho, aby ste museli zošit ručne otvárať.

123456789 Vedľajšia kópia listuFromClosedWB ()Application.ScreenUpdating = FalseNastaviť closedBook = zošity. Otvorené ("D: \ Dropbox \ excel \ articles \ example.xlsm")closedBook.Sheets ("Sheet1"). Kopírovať pred: = ThisWorkbook.Sheets (1)closedBook.Close SaveChanges: = FalseApplication.ScreenUpdating = TrueKoniec pod

Všimnite si, že v oboch týchto príkladoch sme deaktivovali ScreenUpdating, aby proces bežal na pozadí.

Duplicitný list programu Excel viackrát

Hárok programu Excel môžete tiež duplikovať viackrát pomocou slučky.

1234567891011121314 Vedľajšia kópia listu Viacnásobné časy ()Dim n ako celé čísloDim i As IntegerPri chybe Pokračovať ďalejn = InputBox („Koľko kópií chcete vytvoriť?“)Ak n> 0 PotomPre i = 1 až nActiveSheet.Copy Po: = ActiveWorkbook.Sheets (Worksheets.Count)ĎalšieKoniec AkKoniec pod

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave