Note: The other languages of the website are Google-translated. Back to English
Přihlásit se  \/ 
x
or
x
Registrovat  \/ 
x

or

Jak kopírovat více listů vícekrát v aplikaci Excel?

Někdy možná budeme muset v sešitu vytvořit kopii nebo více kopií určených listů. Zde je několik rychlých způsobů, které vám pomohou snadno zkopírovat jeden list nebo více listů několikrát v aplikaci Excel.


Vytvořte jednu kopii více listů najednou do aktivního sešitu nebo jiného sešitu pomocí příkazu Přesunout nebo Kopírovat

S Přesunout nebo Kopírovat Příkaz v aplikaci Excel můžete vytvořit jednu kopii listu, více konkrétních listů nebo všechny listy do aktivního sešitu nebo jiného sešitu najednou.

1. V určitém sešitu, kam budete kopírovat listy, vyberte na panelu karet List více listů.
Poznámka: Držení CTRL klávesa, můžete vybrat více nesousedících záložek listu kliknutím na jeden po druhém na panelu Tabulátory; podíl SHIFT můžete vybrat více sousedních karet listu kliknutím na první kartu listu a poslední na panelu karet List.

2. Klikněte pravým tlačítkem na vybranou kartu listu na panelu Karta listu a vyberte Přesunout nebo Kopírovat z kontextové nabídky. Viz snímek obrazovky:
doc kopírovat více listů 01

3. V Přesunout nebo Kopírovat V dialogovém okně zadejte následující nastavení:
(1) Uveďte cílový sešit, do kterého zkopírujete listy z Zarezervovat rozbalovací seznam. Podle potřeby si můžete vybrat aktivní sešit, jiný otevřený sešit nebo nový sešit.
(2) Určete umístění zkopírovaných listů na panelu Tabulátory listů, můžete si vybrat po všech existujících listech.
(3) Zkontrolovat Vytvořte kopii Pokud tuto možnost nezaškrtnete, vybrané listy se přesunou do cílového sešitu.
(4) Klikněte na OK tlačítko.

Nyní vytvoří pouze jednu kopii vybraných listů do zadaného sešitu. Chcete-li vytvořit více kopií těchto listů, můžete operaci opakovat několikrát.

Pouze několik kliknutí k vytvoření více kopií více listů v aktivním sešitu

Obecně můžeme kopírovat více listů pomocí Přesunout nebo Kopírovat funkce v aplikaci Excel. Tato funkce však může vytvořit pouze jednu kopii najednou. Tady, s Kutools pro Excel Kopírování pracovních listů nástroj, můžete snadno vytvořit tolik kopií mnoha listů, kolik potřebujete, v aktivním sešitu pouze několika kliknutími. Plná verze zkušební verze zdarma 30 dní!
reklamní kopie více pracovních listů 01

Kutools pro Excel - Zahrnuje více než 300 užitečných nástrojů pro Excel. Plná funkce 30denní bezplatná zkušební verze, není nutná kreditní karta! Get It Now

Vytvořte více kopií jednoho zadaného listu do aktivního sešitu s kódem VBA

Pokud chcete vytvořit 10 kopií zadaného listu, Přesunout nebo Kopírovat příkaz bude časově náročný způsob a operaci musíte opakovat mnohokrát. Ale s následujícím kódem VBA můžete rychle zkopírovat list 10krát najednou.

1. Podržte ALT + F11 klíče a otevře se Microsoft Visual Basic pro aplikace okno.

2, klikněte Vložit > Modula vložte následující kód do okna modulu.

VBA: Vytvořte více kopií určitých listů do aktivního sešitu

Sub Copier ()
Dim x As Integer
x = InputBox("Enter number of times to copy Sheet1")
For numtimes = 1 To x
ActiveWorkbook.Sheets("Sheet1").Copy _
After:=ActiveWorkbook.Sheets("Sheet1")
Next
End Sub

Poznámka: Ve výše uvedeném kódu nahraďte „Sheet1"s názvem listu, který má být zkopírován.

3. Pak stiskněte tlačítko F5 po spuštění kódu se zobrazí okno s výzvou k zadání požadovaného počtu kopií listu.

4. Pak klikněte na tlačítko OK, zadaný list byl v aktivním sešitu zkopírován 100krát.


Vytvořte více kopií více listů do aktivního sešitu pomocí programu Kutools pro Excel

I když je snadné vytvořit kopii více listů v aplikaci Excel, pokud chcete vytvořit více kopií více listů v aktuálním sešitu, možná budete muset použít Přesunout nebo Kopírovat položka příkazu znovu a znovu. Chtěli byste věc dokončit jedním kliknutím? S Kopírování pracovních listů užitečnost doplňku třetí strany Kutools pro Excel, jste schopni vytvořit více kopií více listů jedním kliknutím v aplikaci Excel.

Kutools pro Excel - Zahrnuje více než 300 užitečných nástrojů pro Excel. Plná funkce 30denní bezplatná zkušební verze, není nutná kreditní karta! Get It Now

1, klikněte Kutools Plus > Kopírování pracovních listů. Viz snímek obrazovky:

Poznámka: Klikání Kutools Plus > Pracovní list > Kopírování pracovních listů také získá tuto funkci.

2. Použít nastavení v Zkopírujte více pracovních listů dialogové okno:
(1) Zkontrolujte listy, ze kterých chcete kopírovat Zkopírujte vybrané listy sekce.
(2) Upřesněte Počet kopií.
(3) Určete polohu kopírovaných listů, například před nebo po všech pracovních listech, před nebo po aktuálním listu.
(4) Klikněte na Ok tlačítko.

3. Zobrazí se okno s výzvou, které vám připomene, že zaškrtnuté listy byly zkopírovány do vícekrát, jak potřebujete, klikněte na ikonu OK tlačítko pro jeho ukončení. Viz snímek obrazovky:

Tento Zkopírujte více pracovních listů vlastnost Kutools pro Excel vytvoří v aktivním sešitu několik kopií několika určených listů pouze s několika kliknutími. Vyzkoušejte zdarma!


Vytvořte jednu kopii více listů z více sešitů do nového

Pokud máte nainstalovaný program Kutools pro Excel, můžete jej také použít Zkombinujte pracovní listy funkce pro vytvoření jedné kopie více listů z více uzavřených sešitů do nového sešitu několika kliknutími pouze v aplikaci Excel.

Kutools pro Excel - Zahrnuje více než 300 užitečných nástrojů pro Excel. Plná funkce 30denní bezplatná zkušební verze, není nutná kreditní karta! Get It Now

1, klikněte Kutools Plus > Kombinovat aktivovat funkci Kombinovat pracovní listy.

2. V průvodci Spojení pracovních listů - krok 1 ze 3 zkontrolujte prosím Zkombinujte více listů ze sešitů do jednoho listu a klepněte na tlačítko další knoflík. Viz screenshot:

3. V Průvodci kombinováním pracovních listů - krok 2 ze 3 proveďte následující obrázek obrazovky:
(1) Klepněte na tlačítko přidat > Soubor or Desky Chcete-li přidat sešity, zkopírujete z nich listy.
(2) V Seznam sešitů část, zkontrolujte sešit, jehož listy budete kopírovat;
(3) V Seznam pracovních listů část, zkontrolujte listy, které zkopírujete;
(4) Opakujte výše (2) a (3) k výběru pracovních listů z jiných sešitů, které zkopírujete.
(5) Klikněte na další tlačítko.

4. V průvodci Spojení pracovních listů - krok 3 ze 3 nakonfigurujte nastavení kopírování podle potřeby a klikněte na úprava tlačítko.

5. Nyní v novém dialogovém okně zadejte cílovou složku pro uložení nového sešitu, pojmenujte nový sešit v Název souboru a klepněte na tlačítko Uložit knoflík. Viz screenshot:

Nyní vyjdou další dvě dialogová okna a požádají vás, abyste otevřeli nový sešit a uložili scénář kombinace, klikněte prosím na tlačítka, jak potřebujete. Zatím zkopírovalo všechny určené listy z více sešitů najednou.

S tím Kombinovat (pracovní listy) můžete snadno kopírovat a kombinovat listy a sešity podle následujícího seznamu. Vyzkoušejte zdarma!
(1) Rychle kombinujte více listů / rozsahů ze sešitů do jednoho listu;
(2) Rychle sloučit / zkombinovat všechny listy stejného jména napříč sešity do jednoho listu;
(3) Rychlé sloučení / sloučení listů nebo sešitů do jednoho sešitu;
(4) Rychle shrňte / vypočítejte data z více listů do jednoho listu.


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2019 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Kompletní funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50% a omezuje stovky kliknutí myší každý den!
officetab dno
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Tyler Dempsey · 3 years ago
    I am new to this I am just trying to make copies of the same sheet this is the code I am using.

    Sub Copier()
    Dim s As String
    Dim numtimes As Integer
    Dim numCopies As Integer
    numCopies = InputBox("How many copies do you need?")
    s = InputBox("Enter the name of the Worksheet you want to copy")
    For numtimes = 1 To numCopies
    ActiveWorkbook.Sheets(s).Copy _
    After:=ActiveWorkbook.Sheets(Worksheets.Cou nt)
    Next
    End Sub

    when i use the code it gives me the error of "Syntax Error" then this text turns red ActiveWorkbook.Sheets(s).Copy _
    After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) and the is text turns yellow Sub Copier() what can i do to fix it.
    • To post as a guest, your comment is unpublished.
      Jorge · 1 years ago
      Working Code

      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy After:=ActiveWorkbook.Sheets(Worksheets.Count)
      Next
      End Sub

      copy the entire line from ActiveWorkbook.Sheets...... that was the problem, and some spaces

      Have a great day
    • To post as a guest, your comment is unpublished.
      Schuyler · 3 years ago
      [quote name="Tyler Dempsey"]I am new to this I am just trying to make copies of the same sheet this is the code I am using.

      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt)
      Next
      End Sub

      when i use the code it gives me the error of "Syntax Error" then this text turns red ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) and the is text turns yellow Sub Copier() what can i do to fix it.[/quote]


      Here is the exact code you want to use:


      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Count)
      Next
      End Sub
      • To post as a guest, your comment is unpublished.
        Belva · 2 months ago
        Thank you, the last one saved my life :)
    • To post as a guest, your comment is unpublished.
      Schuyler · 3 years ago
      [quote name="Tyler Dempsey"]I am new to this I am just trying to make copies of the same sheet this is the code I am using.

      Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt)
      Next
      End Sub

      when i use the code it gives me the error of "Syntax Error" then this text turns red ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) and the is text turns yellow Sub Copier() what can i do to fix it.[/quote]


      Double check your code and make sure you don't have a space at ActiveWorkbook. Sheets(s).Copy _ or at Sheets(Worksheets.Cou nt)
  • To post as a guest, your comment is unpublished.
    Simon · 4 years ago
    Fantastic VBA code - really helped
  • To post as a guest, your comment is unpublished.
    Barry · 4 years ago
    When I first tried it, I got the error message because I didn't change the name Sheet1. After I realized what caused the error, I researched a little further, as I did not want to be manually entering the sheet name into the macro. And when I need this feature, it is almost always for the current sheet.

    I added the line a = activesheet.name
    And revised the line after:=activeworkbook.sheets("sheet1") to activeworkbook.sheets(a).copy _

    That worked very well, but I did notice the numbering was reversed ... that didn't bother me as I was going to manually rename the new sheets anyway.

    When I saw Schuyler's post, I further revised the line activeworkbook.sheets(a).copy _ to after:=activeworkbook.sheets(worksheets.count)

    I am now satisfied with the result. My finished macro:

    Sub copies()
    Dim x As Integer
    x = InputBox("Enter number of times to copy Sheet1")
    For numtimes = 1 To x
    ActiveWorkbook.Sheets("Sheet1").Copy _
    After:=ActiveWorkbook.Sheets(Worksheets.Count)
    Next
    End Sub

    ---
    All the best, Barry
    • To post as a guest, your comment is unpublished.
      MJ · 2 years ago
      i got syntax error on "After:=ActiveWorkbook.Sheets(Worksheets.Count)


      but i dunno whats wrong... Can u help me please?
    • To post as a guest, your comment is unpublished.
      Kate · 3 years ago
      Thank you so much Barry. Your finished macro is the only thing that worked for me.
  • To post as a guest, your comment is unpublished.
    stalag 17 · 4 years ago
    where i will insert this above code in vba should i create common button then inside ?? regards.
    • To post as a guest, your comment is unpublished.
      Adi · 3 years ago
      Follow the below steps:
      1. Copy the above code
      2. Hold down the ALT + F11 keys, and it opens the Microsoft Visual Basic for Applications window.
      2. Click Insert > Module, and paste the following code in the Module Window.
      4.Then press F5 key to run the code
      5.A prompt box appears to ask you the number of sheet copies you want.
  • To post as a guest, your comment is unpublished.
    Susan · 5 years ago
    I get an error that 'numtimes' is not defined...?
  • To post as a guest, your comment is unpublished.
    Debbi · 5 years ago
    I got the same error as Theou and no one seems to have addressed it. My tabs are already named PO 51, PO 52, etc. and I replaced Sheet1 with PO 51 to copy that and got the subscript error out of range (9)

    I followed Schuyler's code to get the right order, but I still get the error and it's always due to these two lines:

    ActiveWorkbook.Sheets(s).Copy _
    Before:=ActiveWorkbook.Sheets(Worksheets.Count)
    • To post as a guest, your comment is unpublished.
      Schuyler · 5 years ago
      [quote name="Debbi"]I got the same error as Theou and no one seems to have addressed it. My tabs are already named PO 51, PO 52, etc. and I replaced Sheet1 with PO 51 to copy that and got the subscript error out of range (9)

      I followed Schuyler's code to get the right order, but I still get the error and it's always due to these two lines:

      ActiveWorkbook.Sheets(s).Copy _
      Before:=ActiveWorkbook.Sheets(Worksheets.Count)[/quote]

      Can you include your complete code to make it easier to debug? A "subscript error out of range" usually means that the code references something that doesn't exist. I find this in my own code when I've got a typo or something of that nature.
  • To post as a guest, your comment is unpublished.
    Roy · 5 years ago
    how to copy with same column widths
    • To post as a guest, your comment is unpublished.
      Schuyler · 5 years ago
      Same column widths as the original Worksheet or do you want all of the column widths to be the same?
  • To post as a guest, your comment is unpublished.
    sadaqat · 5 years ago
    yes it works thanks I have successfully make multiple copies of a single worksheet in same workbook by using vba code thnx a lot.
  • To post as a guest, your comment is unpublished.
    Gopal Krishan · 5 years ago
    Search for word "After" and change it to "Before". This will create copies in right order "Before" Sheet1. The only thing to rememeber is that numbering will always start from (2) as the original sheet will always be counted as 1st copy. Also you can replace "Sheet1" with name of the tab you are trying to copy.
  • To post as a guest, your comment is unpublished.
    juan · 6 years ago
    [quote name="MichaelTadashi"]Using the VBA code, the naming of the duplicated worksheets is in reverse order. Let's say I make 10 copies of Sheet1, I'll end up with Sheet1, Sheet1(10), Sheet1(9), Sheet1(8),.......is it possible to have them in normal order?[/quote]

    Anyone was able to answer this question? I need to create 72 copies, but it would be needed to have them in order (1 throught 72, intead of 72 through 1)

    Thanks!
    • To post as a guest, your comment is unpublished.
      Schuyler · 5 years ago
      [quote name="juan"][quote name="MichaelTadashi"]Using the VBA code, the naming of the duplicated worksheets is in reverse order. Let's say I make 10 copies of Sheet1, I'll end up with Sheet1, Sheet1(10), Sheet1(9), Sheet1(8),.......is it possible to have them in normal order?[/quote]

      Anyone was able to answer this question? I need to create 72 copies, but it would be needed to have them in order (1 throught 72, intead of 72 through 1)

      Thanks![/quote]

      If you want the sheet copies to be in sequential order instead of backwards, change the following line...

      [i]After:=ActiveWorkbook.Sheets[/i][u]("Sheet1")[/u]

      to this...

      [i]After:=ActiveWorkbook.Sheets[/i][u](Worksheets.Count)[/u]

      My completed code looked like the following which uses 2 InputBox prompts to allow for a dynamic copy count and worksheet name..


      [i]Sub Copier()
      Dim s As String
      Dim numtimes As Integer
      Dim numCopies As Integer
      numCopies = InputBox("How many copies do you need?")
      s = InputBox("Enter the name of the Worksheet you want to copy")
      For numtimes = 1 To numCopies
      ActiveWorkbook.Sheets(s).Copy _
      After:=ActiveWorkbook.Sheets(Worksheets.Count)
      Next
      End Sub[/i]
      • To post as a guest, your comment is unpublished.
        Karsten · 4 years ago
        How do i get the coppies continuous numbered. If the sheet i want to copy is named I002, and i want the next to be named I003,I004,I005 an so on.
  • To post as a guest, your comment is unpublished.
    Lim · 6 years ago
    Wow, thanks for the VBA code. It really helps a lot!
  • To post as a guest, your comment is unpublished.
    Dee · 6 years ago
    thanks, the vba code was huge
  • To post as a guest, your comment is unpublished.
    Theou Aegis · 6 years ago
    I tried the VBA code and got subscript out of range error (9). I replaced the sheet name with anything I could think of that was in the workbook already. Any idea what I did wrong?

    Also, is there a way to make it name each sheet incrementally? This would tie in with Michael's question, I'm sure. I'm guessing the answer to his question would be you'd need to set the After target to "sheet"+x somehow and that in turn would apply to my question if there was a way to specify what to name the new sheet. I could always just change my boss' "master" to "Aug 0" or whatever month it is, but it'd be easier for her to understand if the script did the naming automatically.
  • To post as a guest, your comment is unpublished.
    MichaelTadashi · 7 years ago
    Using the VBA code, the naming of the duplicated worksheets is in reverse order. Let's say I make 10 copies of Sheet1, I'll end up with Sheet1, Sheet1(10), Sheet1(9), Sheet1(8),.......is it possible to have them in normal order?