Как скопировать лист в excel vba

Метод Worksheet.Copy (Excel)

Копирует лист в другое расположение в текущей книге или новой книге.

Синтаксис

выражения. Copy (Before, After)

выражение Переменная, представляюная объект "Таблица".

Параметры

Имя Обязательный или необязательный Тип данных Описание
Before Необязательный Variant Лист, перед которым будет размещен скопирован лист. Вы не можете указать Перед, если указать После.
After Необязательный Variant Лист, после которого будет размещен скопирован лист. Вы не можете указать После, если вы укажите Before.

Примечания

Если вы не указываете ни до, ни после, Microsoft Excel создает новую книгу, которая содержит скопированные объекты таблицы. Недавно созданная книга содержит свойство Application.ActiveWorkbook и содержит одну таблицу. В единой таблице сохраняются свойства name и CodeName исходных таблиц. Если скопированная таблица держала лист кода листа в проекте VBA, то это также осуществляется в новой книге.

Выбор массива из нескольких листов можно скопировать на новый пустой объект книги аналогичным образом.

Источник и назначение должны быть в одном Excel. Пример приложения, в противном случае он вызывает ошибку времени запуска ‘1004’: Нет такого интерфейса поддерживается, если что-то подобное было использовано, или ошибка времени запуска Sheet1.Copy objWb.Sheets(1) ‘1004’: Метод копирования класса Worksheet не удалось, если что-то подобное ThisWorkbook.Worksheets("Sheet1").Copy objWb.Sheets(1) было использовано.

Пример

В этом примере копируется Sheet1, размещая копию после Sheet3.

В этом примере сначала скопируется sheet1 в новую пустую книгу, а затем сохраняется и закрывается новая книга.

В этом примере листы Sheet1, Sheet2 и Sheet4 копируется в новую пустую книгу, а затем сохраняет и закрывает новую книгу.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Как скопировать лист из одной книги в другую в VBA

Я хотел бы скопировать лист с формулами в другие книги, поэтому важно иметь общую цель, которую я могу использовать и для других книг, а не только для одного. Вот мой код:

Не могли бы вы мне помочь?

Я бы сделал это так:

Этот фрагмент кода немного подробный, но цель состоит в том, чтобы дать вам представление о том, что происходит.

Выбор целевой рабочей книги выполняется в строке Set target_workbook. Здесь вы можете создать новую книгу (например, я делаю это в этом примере) или открыть существующую книгу.

Чтобы открыть существующую книгу, замените строку Set target_workbook следующим образом:

В конце вы можете добавить некоторые функции сохранения и закрытия:

Чтобы получить список файлов в папке, вам нужно определить объект с помощью Dir (как описано в этом сообщении: Пропустить файлы в папке с помощью VBA?):

Ссылка на основную публикацию