- Skopírujte pracovný hárok do nového zošita
- Skopírujte viac listov do nového zošita
- Kopírovať list do rovnakého zošita
- Presunúť list
- Kopírovať a pomenovať list
- Skopírujte pracovný hárok do iného zošita
- Skopírujte pracovný hárok do zatvoreného zošita
- Skopírujte hárok z iného zošita bez jeho otvorenia
- Duplicitný list programu Excel viackrát
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 |