Note: The other languages of the website are Google-translated. Back to English

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

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


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

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

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

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

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

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

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

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


объявление копировать несколько листов 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. Нажмите Кутулс Плюс > Копировать рабочие листы. Смотрите скриншот:

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

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. Нажмите Кутулс Плюс > Сочетать , чтобы активировать функцию «Объединить листы».

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-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
вкладка kte 201905

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

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (25)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
Используя код VBA, именование дублированных рабочих листов осуществляется в обратном порядке. Скажем, я делаю 10 копий Листа 1, в итоге у меня будут Лист 1, Лист 1 (10), Лист 1 (9), Лист 1 (8), ...... возможно ли иметь их в обычном порядке?
Этот комментарий был сведен к минимуму модератором на сайте
Я попробовал код VBA и получил индекс ошибки вне диапазона (9). Я заменил имя листа на все, что я мог придумать, что уже было в книге. Есть идеи, что я сделал не так? Кроме того, есть ли способ заставить его называть каждый лист постепенно? Я уверен, что это связано с вопросом Майкла. Я предполагаю, что ответ на его вопрос будет заключаться в том, что вам нужно будет каким-то образом установить цель «После» на «лист» + x, и это, в свою очередь, применимо к моему вопросу, если бы был способ указать, как назвать новый лист. Я всегда мог просто изменить «мастер» моей начальницы на «0 августа» или любой другой месяц, но ей было бы легче понять, если бы сценарий автоматически называл имена.
Этот комментарий был сведен к минимуму модератором на сайте
спасибо, код vba был огромным
Этот комментарий был сведен к минимуму модератором на сайте
Вау, спасибо за код VBA. Это действительно очень помогает!
Этот комментарий был сведен к минимуму модератором на сайте
[quote]Используя код VBA, именование дублированных рабочих листов происходит в обратном порядке. Скажем, я делаю 10 копий Листа 1, в итоге я получу Лист 1, Лист 1 (10), Лист 1 (9), Лист 1 (8), ...... возможно ли иметь их в обычном порядке?Майкл Тадаши[/quote] Кто-нибудь смог ответить на этот вопрос? Мне нужно создать 72 копии, но их нужно расположить по порядку (от 1 до 72, а не от 72 до 1). Спасибо!
Этот комментарий был сведен к минимуму модератором на сайте
[quote][quote]Используя код VBA, именование дублированных рабочих листов происходит в обратном порядке. Скажем, я делаю 10 копий Листа 1, в итоге у меня будут Лист 1, Лист 1 (10), Лист 1 (9), Лист 1 (8), ...... возможно ли иметь их в обычном порядке?Автор: juan[/quote] Кто-нибудь смог ответить на этот вопрос? Мне нужно создать 72 копии, но их нужно расположить по порядку (от 1 до 72, а не от 72 до 1). Спасибо!Майкл Тадаши[/quote]e] Если вы хотите, чтобы копии листа располагались в последовательном порядке, а не в обратном порядке, измените следующую строку... После:=ActiveWorkbook.Sheets("Лист1") к этому... После:=ActiveWorkbook.Sheets(Рабочие листы.Количество) Мой завершенный код выглядел следующим образом, в котором используются 2 подсказки InputBox, чтобы обеспечить динамическое количество копий и имя рабочего листа. Sub Copier() Dim s As String Dim numtimes As Integer Dim numCopies As Integer numCopies = InputBox("Сколько копий вам нужно?") s = InputBox("Введите имя рабочего листа, который вы хотите скопировать") For numtimes = 1 To numCopies ActiveWorkbook.Sheets(s).Copy _ After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Как я могу получить непрерывную нумерацию копий. Если лист, который я хочу скопировать, называется I002, и я хочу, чтобы следующий был назван I003, I004, I005 и так далее.
Этот комментарий был сведен к минимуму модератором на сайте
Найдите слово «После» и измените его на «До». Это создаст копии в правильном порядке «До» Sheet1. Единственное, что нужно помнить, это то, что нумерация всегда будет начинаться с (2), так как исходный лист всегда будет считаться 1-й копией. Также вы можете заменить «Лист1» на имя вкладки, которую вы пытаетесь скопировать.
Этот комментарий был сведен к минимуму модератором на сайте
да, это работает, спасибо, я успешно сделал несколько копий одного листа в одной книге, используя код vba, спасибо.
Этот комментарий был сведен к минимуму модератором на сайте
как скопировать с одинаковой шириной столбца
Этот комментарий был сведен к минимуму модератором на сайте
Та же ширина столбцов, что и на исходном рабочем листе, или вы хотите, чтобы все ширины столбцов были одинаковыми?
Этот комментарий был сведен к минимуму модератором на сайте
Я получил ту же ошибку, что и Theou, и, похоже, никто не обратился к ней. Мои вкладки уже называются PO 51, PO 52 и т. д., и я заменил Sheet1 на PO 51, чтобы скопировать это, и получил ошибку нижнего индекса вне диапазона (9). Я следовал коду Шайлера, чтобы получить правильный порядок, но я все еще получаю ошибку и это всегда связано с этими двумя строками: ActiveWorkbook.Sheets(s).Copy _ Before:=ActiveWorkbook.Sheets(Worksheets.Count)
Этот комментарий был сведен к минимуму модератором на сайте
[quote]У меня была та же ошибка, что и у Теоу, и, кажется, никто не устранил ее. Мои вкладки уже называются PO 51, PO 52 и т. д., и я заменил Sheet1 на PO 51, чтобы скопировать это, и получил ошибку нижнего индекса вне диапазона (9). Я следовал коду Шайлера, чтобы получить правильный порядок, но я все еще получаю ошибку и это всегда связано с этими двумя строками: ActiveWorkbook.Sheets(s).Copy _ Before:=ActiveWorkbook.Sheets(Worksheets.Count)Дебби[/quote] Можете ли вы включить свой полный код, чтобы упростить отладку? «Ошибка нижнего индекса вне диапазона» обычно означает, что код ссылается на что-то, чего не существует. Я нахожу это в своем собственном коде, когда у меня есть опечатка или что-то в этом роде.
Этот комментарий был сведен к минимуму модератором на сайте
Я получаю сообщение об ошибке, что 'numtimes' не определено...?
Этот комментарий был сведен к минимуму модератором на сайте
где я вставлю этот код выше в vba, должен ли я создать общую кнопку, а затем внутри ?? С Уважением.
Этот комментарий был сведен к минимуму модератором на сайте
Выполните следующие шаги:
1. Скопируйте приведенный выше код
2. Удерживая клавиши ALT + F11, откроется окно Microsoft Visual Basic для приложений.
2. Щелкните Вставить > Модуль и вставьте следующий код в окно модуля.
4. Затем нажмите клавишу F5, чтобы запустить код
5. Появится окно с запросом на желаемое количество копий листа.
Этот комментарий был сведен к минимуму модератором на сайте
Когда я впервые попробовал это, я получил сообщение об ошибке, потому что я не изменил имя Sheet1. После того, как я понял, что вызвало ошибку, я продолжил исследование, так как не хотел вручную вводить имя листа в макрос. И когда мне нужна эта функция, она почти всегда для текущего листа. Я добавил строку a = activesheet.name и изменил строку after:=activeworkbook.sheets("sheet1") на activeworkbook.sheets(a).copy _ Это сработало очень хорошо, но я заметил, что нумерация была изменена... это меня не беспокоило, так как я все равно собирался вручную переименовывать новые листы. Когда я увидел сообщение Шайлер, я дополнительно изменил строку activeworkbook.sheets(a).copy _ на after:=activeworkbook.sheets(worksheets.count). Теперь я доволен результатом. Мой готовый макрос: Подкопии () Dim x As Integer x = InputBox («Введите количество копий Sheet1») For numtimes = 1 To x ActiveWorkbook.Sheets («Sheet1»). Копировать _ After: = ActiveWorkbook.Sheets ( Worksheets.Count) Next End Sub --- Всего наилучшего, Барри
Этот комментарий был сведен к минимуму модератором на сайте
Большое спасибо, Барри. Ваш готовый макрос - единственное, что сработало для меня.
Этот комментарий был сведен к минимуму модератором на сайте
я получил синтаксическую ошибку в «После: = ActiveWorkbook.Sheets (Worksheets.Count)


но я не знаю, что не так... Можете ли вы помочь мне, пожалуйста?
Этот комментарий был сведен к минимуму модератором на сайте
Фантастический код VBA - действительно помог
Этот комментарий был сведен к минимуму модератором на сайте
Я новичок в этом, я просто пытаюсь сделать копии одного и того же листа, это код, который я использую. Sub Copier() Dim s As String Dim numtimes As Integer Dim numCopies As Integer numCopies = InputBox («Сколько копий вам нужно?») s = InputBox («Введите имя рабочего листа, который вы хотите скопировать») For numtimes = 1 To numCopies ActiveWorkbook.Sheets(s).Copy _ After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) Next End Sub, когда я использую код, он выдает ошибку «Синтаксическая ошибка», затем этот текст становится красным ActiveWorkbook.Sheets (s).Copy _ After:=ActiveWorkbook.Sheets(Worksheets.Cou nt), и текст становится желтым Sub Copier(), что я могу сделать, чтобы это исправить.
Этот комментарий был сведен к минимуму модератором на сайте
[quote]Я новичок в этом, я просто пытаюсь сделать копии одного и того же листа, это код, который я использую. Sub Copier() Dim s As String Dim numtimes As Integer Dim numCopies As Integer numCopies = InputBox («Сколько копий вам нужно?») s = InputBox («Введите имя рабочего листа, который вы хотите скопировать») For numtimes = 1 To numCopies ActiveWorkbook.Sheets(s).Copy _ After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) Next End Sub, когда я использую код, он выдает ошибку «Синтаксическая ошибка», затем этот текст становится красным ActiveWorkbook.Sheets (s).Copy _ After:=ActiveWorkbook.Sheets(Worksheets.Cou nt), и текст становится желтым Sub Copier(), что я могу сделать, чтобы это исправить.Тайлер Демпси[/quote] Дважды проверьте свой код и убедитесь, что у вас нет места в ActiveWorkbook. Sheets(s).Copy _ или Sheets(Worksheets.Cou nt)
Этот комментарий был сведен к минимуму модератором на сайте
[quote]Я новичок в этом, я просто пытаюсь сделать копии одного и того же листа, это код, который я использую. Sub Copier() Dim s As String Dim numtimes As Integer Dim numCopies As Integer numCopies = InputBox («Сколько копий вам нужно?») s = InputBox («Введите имя рабочего листа, который вы хотите скопировать») For numtimes = 1 To numCopies ActiveWorkbook.Sheets(s).Copy _ After:=ActiveWorkbook.Sheets(Worksheets.Cou nt) Next End Sub, когда я использую код, он выдает ошибку «Синтаксическая ошибка», затем этот текст становится красным ActiveWorkbook.Sheets (s).Copy _ After:=ActiveWorkbook.Sheets(Worksheets.Cou nt), и текст становится желтым Sub Copier(), что я могу сделать, чтобы это исправить.Тайлер Демпси[/quote] Вот точный код, который вы хотите использовать: Sub Copier() Dim s As String Dim numtimes As Integer Dim numCopies As Integer numCopies = InputBox("Сколько копий вам нужно?") s = InputBox("Enter имя рабочего листа, который вы хотите скопировать") For numtimes = 1 To numCopies ActiveWorkbook.Sheets(s).Copy _ After:=ActiveWorkbook.Sheets(Worksheets.Count) Next End Sub
Этот комментарий был сведен к минимуму модератором на сайте
Спасибо, последнее спасло мне жизнь :)
Этот комментарий был сведен к минимуму модератором на сайте
Рабочий код

Субкопир()
Dim как строка
Dim numtimes как целое число
Dim numCopies как целое число
numCopies = InputBox("Сколько копий вам нужно?")
s = InputBox("Введите имя рабочего листа, который вы хотите скопировать")
Для numtimes = 1 To numCopies
ActiveWorkbook.Sheets(s).Copy After:=ActiveWorkbook.Sheets(Worksheets.Count)
Далее
End Sub

скопируйте всю строку из ActiveWorkbook.Sheets...... это была проблема, и некоторые пробелы

Отличный день
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL