Note: The other languages of the website are Google-translated. Back to English
Войти  \/ 
x
or
x
Регистрация  \/ 
x

or

Как скопировать несколько листов в Excel несколько раз?

Иногда нам может потребоваться сделать копию или несколько копий указанных рабочих листов в книге. Вот несколько быстрых способов, которые помогут вам легко скопировать один или несколько листов несколько раз в Excel.


Сделайте одну копию нескольких листов за один раз в активную книгу или другую книгу с помощью команды Переместить или Копировать

Для Переместить или скопировать в Excel, вы можете сделать одну копию рабочего листа, нескольких конкретных рабочих листов или всех рабочих листов в активную книгу или другую книгу за раз.

1. В определенной книге, в которую вы будете копировать листы, выберите несколько листов на панели вкладок листа.
Внимание: Держа CTRL клавишу, вы можете выбрать несколько несмежных вкладок листов, щелкая их одну за другой на панели вкладок листа; держа SHIFT , вы можете выбрать несколько смежных вкладок листов, щелкнув вкладку первого листа и последнюю на панели вкладок листа.

2. Щелкните правой кнопкой мыши вкладку выбранного листа на панели вкладок листа и выберите Переместить или скопировать из контекстного меню. Смотрите скриншот:
документ копировать несколько листов 01

3. В Переместить или скопировать диалоговом окне укажите следующие параметры:
(1) Укажите целевую книгу, в которую вы будете копировать рабочие листы из Бронировать раскрывающийся список. Вы можете выбрать активную книгу, другую открытую книгу или новую книгу по мере необходимости.
(2) Укажите положение скопированных листов на панели вкладок листов, вы можете выбрать после всех существующих листов.
(3) Проверить Создать копию Если вы не отметите этот параметр, выбранные листы будут перемещены в целевую книгу.
(4) Щелкните значок OK кнопку.

Теперь он сделает только одну копию выбранных листов в указанную книгу. Чтобы сделать несколько копий этих листов, вы можете повторить операцию несколько раз.

Всего несколько щелчков мышью, чтобы сделать несколько копий нескольких листов в активной книге

В общем, мы можем скопировать несколько листов с Переместить или скопировать функция в Excel. Однако с помощью этой функции можно делать только одну копию за раз. Здесь с Kutools for Excel's Копировать рабочие листы Утилита, вы можете легко сделать столько копий многих листов, сколько вам нужно в активной книге, всего за несколько щелчков мышью. Полнофункциональная бесплатная 30-дневная пробная версия!
объявление копировать несколько листов 01

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now

Сделайте несколько копий одного указанного рабочего листа в активную книгу с кодом VBA

Если вы хотите сделать 10 копий указанного рабочего листа, Переместить или скопировать команда будет трудоемким способом, и вам придется повторять операцию много раз. Но с помощью следующего кода VBA вы можете быстро скопировать рабочий лист 10 раз за один раз.

1. Удерживайте ALT + F11 ключи, и он открывает Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > модульи вставьте следующий код в окно модуля.

VBA: сделайте несколько копий определенных листов в активную книгу

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

Внимание: В приведенном выше коде заменить "Sheet1"с именем листа, который нужно скопировать.

3, Затем нажмите F5 нажмите клавишу для запуска кода, появится окно с запросом о количестве копий листов, которое вы хотите.

4, Затем нажмите OK, указанный рабочий лист был скопирован в активную книгу 100 раз.


Сделайте несколько копий нескольких листов в активную книгу с помощью Kutools for Excel

Хотя сделать копию нескольких листов в Excel просто, если вы хотите сделать несколько копий нескольких листов в текущей книге, вам, возможно, придется использовать Переместить или скопировать элемент команды снова и снова. Хотите сделать это одним щелчком мыши? С Копировать рабочие листы утилита сторонней надстройки Kutools for Excel, вы можете сделать несколько копий нескольких листов одним щелчком мыши в Excel.

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now

1. Нажмите Kutools Plus > Копировать рабочие листы. Смотрите скриншот:

Внимание: Нажатие Kutools Plus > Рабочий лист > Копировать рабочие листы также получит эту функцию.

2. Применить настройки в Копировать несколько листов диалоговое окно:
(1) Отметьте рабочие листы, с которых нужно скопировать Скопируйте выбранные листы раздел.
(2) Укажите Количество копий.
(3) Определите положение скопированных листов, например, до или после всех рабочих листов, до или после текущего рабочего листа.
(4) Щелкните значок Ok кнопку.

3. Появится окно с подсказкой, чтобы напомнить вам, что проверенные рабочие листы были скопированы несколько раз по мере необходимости, нажмите OK кнопку для выхода. Смотрите скриншот:

Этот Копировать несколько листов особенность Kutools for Excel сделает несколько копий нескольких указанных листов в активной книге всего за несколько кликов. Получите бесплатную пробную версию!


Сделайте одну копию нескольких листов из нескольких книг в новую

Если у вас установлен Kutools for Excel, вы также можете применить его Комбинировать листы возможность сделать одну копию нескольких листов из нескольких закрытых книг в новую книгу несколькими щелчками мыши только в Excel.

Kutools for Excel - Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Get It Now

1. Нажмите Kutools Plus > Сочетать , чтобы активировать функцию «Объединить листы».

2. В мастере объединения рабочих листов - шаг 1 из 3 проверьте Объедините несколько листов из книг в один лист и нажмите Далее кнопка. Смотрите скриншот:

3. В мастере объединения рабочих листов - шаг 2 из 3 выполните следующие действия:
(1) Нажмите Добавить > Отправьте or Папка чтобы добавить книги, из которых вы будете копировать рабочие листы.
(2) В Список рабочих книг раздел, проверьте книгу, листы которой вы будете копировать;
(3) В Список рабочих листов раздел, проверьте рабочие листы, которые вы будете копировать;
(4) Повторите выше (2) и (3) для выбора листов из других книг, которые вы скопируете.
(5) Щелкните значок Далее кнопку.

4. В мастере объединения листов - шаг 3 из 3 настройте необходимые параметры копирования и нажмите кнопку Завершить кнопку.

5. Теперь в новом диалоговом окне укажите папку назначения для сохранения новой книги, назовите новую книгу в Имя файла и нажмите скидка кнопка. Смотрите скриншот:

Теперь появятся еще два диалоговых окна и попросят вас открыть новую книгу и сохранить сценарий комбинации, нажимайте кнопки по мере необходимости. До сих пор он копировал все указанные рабочие листы из нескольких книг одновременно.

С этой Объединить (рабочие листы) утилиту, вы можете легко копировать и комбинировать рабочие листы и книги, как показано в следующем списке. Получите бесплатную пробную версию!
(1) Быстро объединяйте несколько рабочих листов / диапазонов из рабочих книг в один рабочий лист;
(2) Быстро объединяйте / объединяйте все рабочие листы с одинаковым именем из книг в один рабочий лист;
(3) Быстро объединять листы или книги в одну книгу;
(4) Быстро суммируйте / рассчитывайте данные из нескольких листов в один лист.


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма ...
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы... Предотвращение дублирования ячеек; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии...
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом ...
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Более 300 мощных функций. Поддерживает Office / Excel 2007-2019 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
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?