Note: The other languages of the website are Google-translated. Back to English
Zaloguj Się  \/ 
x
or
x
Zarejestruj się  \/ 
x

or

Jak wielokrotnie kopiować wiele arkuszy w programie Excel?

Czasami może być konieczne wykonanie kopii lub wielu kopii określonych arkuszy w skoroszycie. Oto kilka szybkich sposobów łatwego kopiowania jednego arkusza lub wielu arkuszy w programie Excel.


Utwórz jedną kopię wielu arkuszy jednocześnie do aktywnego skoroszytu lub innego skoroszytu za pomocą polecenia Przenieś lub Kopiuj

Z Przenieś lub skopiuj polecenia w programie Excel, możesz utworzyć jedną kopię arkusza roboczego, wiele określonych arkuszy roboczych lub wszystkie arkusze robocze do aktywnego skoroszytu lub innego skoroszytu naraz.

1. W określonym skoroszycie, w którym będziesz kopiować arkusze, wybierz wiele arkuszy roboczych na pasku kart Arkusz.
Uwagi: Trzymać CTRL klawiszem, możesz wybrać wiele nieprzylegających kart arkuszy, klikając je jedna po drugiej na pasku kart arkusza; trzymać SHIFT klawisz, możesz wybrać wiele sąsiednich kart arkuszy, klikając pierwszą kartę arkusza i ostatnią na pasku kart arkusza.

2. Kliknij prawym przyciskiem myszy wybraną kartę arkusza na pasku kart arkusza i wybierz Przenieś lub skopiuj z menu kontekstowego. Zobacz zrzut ekranu:
doc kopiuj wiele arkuszy 01

3, w Przenieś lub skopiuj w oknie dialogowym określ następujące ustawienia:
(1) Określ skoroszyt docelowy, do którego skopiujesz arkusze z pliku Aby zarezerwować Lista rozwijana. W razie potrzeby możesz wybrać aktywny skoroszyt, inny otwarty skoroszyt lub nowy skoroszyt.
(2) Określ położenie kopiowanych arkuszy na pasku zakładek Arkusz, możesz wybrać po wszystkich istniejących arkuszach.
(3) Sprawdź Utwórz kopię opcja, jeśli nie zaznaczysz tej opcji, wybrane arkusze zostaną przeniesione do skoroszytu docelowego.
(4) Kliknij OK przycisk.

Teraz wykona tylko jedną kopię wybranych arkuszy do określonego skoroszytu. Aby wykonać wiele kopii tych arkuszy, możesz powtórzyć operację wiele razy.

Tylko kilka kliknięć, aby wykonać wiele kopii wielu arkuszy w aktywnym skoroszycie

Ogólnie rzecz biorąc, możemy skopiować wiele arkuszy roboczych z rozszerzeniem Przenieś lub skopiuj funkcja w programie Excel. Jednak ta funkcja może wykonywać tylko jedną kopię naraz. Tutaj, z Kutools dla Excela Kopiuj arkusze narzędzie, możesz łatwo wykonać tyle kopii wielu arkuszy, ile potrzebujesz w aktywnym skoroszycie, wykonując tylko kilka kliknięć. Pełna bezpłatna wersja próbna 30-dniowa!
ad copy wiele arkuszy kalkulacyjnych 01

Kutools dla programu Excel - Zawiera ponad 300 przydatnych narzędzi dla programu Excel. Pełna wersja bezpłatna 30-dniowa, bez karty kredytowej! Zdobądź To Teraz

Wykonaj wiele kopii jednego określonego arkusza roboczego w aktywnym skoroszycie z kodem VBA

Jeśli chcesz wykonać 10 kopii określonego arkusza roboczego, plik Przenieś lub skopiuj będzie to czasochłonny sposób, a operację trzeba będzie powtarzać wielokrotnie. Ale dzięki poniższemu kodowi VBA możesz szybko skopiować arkusz roboczy 10 razy na raz.

1. Przytrzymaj ALT + F11 klucze i otwiera plik Microsoft Visual Basic for Applications okno.

2, Kliknij wstawka > Modułi wklej następujący kod w oknie modułu.

VBA: Utwórz wiele kopii określonych arkuszy w aktywnym skoroszycie

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

Uwagi: W powyższym kodzie zamień „Sheet1”z nazwą arkusza do skopiowania.

3. Następnie naciśnij F5 aby uruchomić kod, pojawi się okno z pytaniem o liczbę żądanych kopii arkuszy.

4. Następnie kliknij OK, określony arkusz został skopiowany 100 razy w aktywnym skoroszycie.


Wykonaj wiele kopii wielu arkuszy do aktywnego skoroszytu za pomocą Kutools for Excel

Chociaż wykonanie kopii wielu arkuszy w programie Excel jest proste, jeśli chcesz wykonać wiele kopii wielu arkuszy w bieżącym skoroszycie, może być konieczne użycie Przenieś lub skopiuj polecenie ponownie i ponownie. Czy chcesz zrobić to jednym kliknięciem? Dzięki Kopiuj arkusze użyteczność dodatku innej firmy Kutools dla programu Excel, możesz wykonać wiele kopii wielu arkuszy jednym kliknięciem w programie Excel.

Kutools dla programu Excel - Zawiera ponad 300 przydatnych narzędzi dla programu Excel. Pełna wersja bezpłatna 30-dniowa, bez karty kredytowej! Zdobądź To Teraz

1, Kliknij Kutools Plus > Kopiuj arkusze. Zobacz zrzut ekranu:

Uwagi: Klikanie Kutools Plus > Ćwiczenie > Kopiuj arkusze otrzyma również tę funkcję.

2. Zastosuj ustawienia w Skopiuj wiele arkuszy roboczych Okno dialogowe:
(1) Sprawdź arkusze, z których chcesz skopiować Skopiuj wybrane arkusze Sekcja.
(2) Określić Liczba kopii.
(3) Określ położenie skopiowanych arkuszy, na przykład przed lub po wszystkich arkuszach, przed lub po bieżącym arkuszu.
(4) Kliknij Ok przycisk.

3. Pojawi się okienko zachęty przypominające, że zaznaczone arkusze zostały skopiowane wiele razy w razie potrzeby, kliknij OK aby wyjść. Zobacz zrzut ekranu:

To Skopiuj wiele arkuszy roboczych cechą Kutools dla programu Excel utworzy wiele kopii wielu określonych arkuszy roboczych w aktywnym skoroszycie za pomocą tylko kilku kliknięć. Bezpłatna wersja próbna!


Zrób jedną kopię wielu arkuszy z wielu skoroszytów do nowego

Jeśli masz zainstalowany Kutools for Excel, możesz również zastosować jego Połącz arkusze funkcja tworzenia jednej kopii wielu arkuszy z wielu zamkniętych skoroszytów do nowego skoroszytu za pomocą kilku kliknięć tylko w programie Excel.

Kutools dla programu Excel - Zawiera ponad 300 przydatnych narzędzi dla programu Excel. Pełna wersja bezpłatna 30-dniowa, bez karty kredytowej! Zdobądź To Teraz

1, Kliknij Kutools Plus > Połączyć aby aktywować funkcję Połącz arkusze.

2. W kreatorze Połącz arkusze - krok 1 z 3, sprawdź Połącz wiele arkuszy ze skoroszytów w jeden arkusz opcję i kliknij przycisk Dalej przycisk. Zobacz zrzut ekranu:

3. W kreatorze Połącz arkusze - krok 2 z 3, wykonaj następujący zrzut ekranu:
(1) Kliknij Add > filet or Teczka aby dodać skoroszyty, z których będziesz kopiować arkusze.
(2) W Lista skoroszytów sprawdź skoroszyt, którego arkusze będziesz kopiować;
(3) W Lista arkuszy sprawdź arkusze, które skopiujesz;
(4) Powtórz powyżej (2) (3) aby wybrać arkusze z innych skoroszytów, które skopiujesz.
(5) Kliknij Dalej przycisk.

4. W kreatorze Połącz arkusze - krok 3 z 3 skonfiguruj ustawienia kopiowania według potrzeb i kliknij przycisk koniec przycisk.

5. Teraz w nowym oknie dialogowym określ folder docelowy, aby zapisać nowy skoroszyt, nazwij nowy skoroszyt w Nazwa pliku i kliknij przycisk Zapisz przycisk. Zobacz zrzut ekranu:

Teraz pojawią się kolejne dwa okna dialogowe z prośbą o otwarcie nowego skoroszytu i zapisanie scenariusza kombinacji, kliknij przyciski według potrzeb. Do tej pory kopiował wszystkie określone arkusze z wielu skoroszytów naraz.

Z tym Połącz (arkusze) narzędzie, możesz łatwo kopiować i łączyć arkusze robocze i skoroszyty, jak pokazano na poniższej liście. Bezpłatna wersja próbna!
(1) Szybko łącz wiele arkuszy / zakresów ze skoroszytów w jeden arkusz roboczy;
(2) Szybko scalaj / łącz wszystkie arkusze o tej samej nazwie w różnych skoroszytach w jeden arkusz;
(3) Szybko scalaj / łącz arkusze lub skoroszyty w jeden skoroszyt;
(4) Szybko podsumuj / oblicz dane z wielu arkuszy w jednym arkuszu.


Najlepsze narzędzia biurowe

Kutools dla programu Excel rozwiązuje większość problemów i zwiększa produktywność o 80%

  • Ponowne użycie: Szybko włóż złożone wzory, wykresy i wszystko, czego używałeś wcześniej; Szyfruj komórki z hasłem; Utwórz listę mailingową i wysyłaj e-maile ...
  • Pasek Super Formula (łatwo edytować wiele wierszy tekstu i formuły); Układ do czytania (łatwe odczytywanie i edytowanie dużej liczby komórek); Wklej do filtrowanego zakresu...
  • Scal komórki / wiersze / kolumny bez utraty danych; Podziel zawartość komórek; Połącz zduplikowane wiersze / kolumny... Zapobiegaj zduplikowanym komórkom; Porównaj zakresy...
  • Wybierz Duplikat lub Unikalny Wydziwianie; Wybierz puste wiersze (wszystkie komórki są puste); Super Find i Fuzzy Find w wielu zeszytach ćwiczeń; Losowy wybór ...
  • Dokładna kopia Wiele komórek bez zmiany odwołania do formuły; Automatyczne tworzenie odniesień do wielu arkuszy; Wstaw punktory, Pola wyboru i nie tylko ...
  • Wyodrębnij tekst, Dodaj tekst, Usuń według pozycji, Usuń przestrzeń; Tworzenie i drukowanie podsumowań stronicowania; Konwertuj zawartość komórek i komentarze...
  • Super filtr (zapisz i zastosuj schematy filtrów do innych arkuszy); Zaawansowane sortowanie według miesiąca / tygodnia / dnia, częstotliwości i innych; Specjalny filtr pogrubieniem, kursywą ...
  • Połącz skoroszyty i arkusze robocze; Scal tabele na podstawie kluczowych kolumn; Podziel dane na wiele arkuszy; Konwersja wsadowa xls, xlsx i PDF...
  • Ponad 300 zaawansowanych funkcji. Obsługuje Office / Excel 2007-2019 i 365. Obsługuje wszystkie języki. Łatwe wdrażanie w przedsiębiorstwie lub organizacji. Pełne funkcje 30-dniowy bezpłatny okres próbny. 60-dniowa gwarancja zwrotu pieniędzy.
kte tab 201905

Karta Office wprowadza interfejs z zakładkami do pakietu Office i znacznie ułatwia pracę

  • Włącz edycję i czytanie na kartach w programach Word, Excel, PowerPoint, Publisher, Access, Visio i Project.
  • Otwieraj i twórz wiele dokumentów w nowych kartach tego samego okna, a nie w nowych oknach.
  • Zwiększa produktywność o 50% i redukuje setki kliknięć myszą każdego dnia!
officetab dół
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?