Vba: как скопировать диапазон на другой лист


Вы можете использовать следующий синтаксис в VBA для копирования диапазона ячеек на другой лист:

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial

Application.CutCopyMode = False

End Sub

Этот конкретный макрос скопирует ячейки в диапазоне A1:C11 листа Sheet1 и вставит их в диапазон, начинающийся с ячейки A1 листа Sheet2 .

Примечание . Строка Application.CutCopyMode = False указывает, что режим вырезания и копирования должен быть отключен после выполнения макроса.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример: копирование диапазона на другой лист с помощью VBA

Допустим, у нас есть следующий набор данных на листе Sheet1 в Excel, который содержит информацию о различных баскетболистах:

Предположим, у нас также есть еще один лист под названием Sheet2 , который в настоящее время пуст:

Допустим, мы хотим скопировать все значения в диапазоне A1:C11 из Листа1 и вставить их, начиная с ячейки A1 Листа2 .

Для этого мы можем создать следующий макрос:

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial

Application.CutCopyMode = False

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод в Sheet2 :

Обратите внимание, что все значения в диапазоне A1:C11 из Sheet1 были скопированы в Sheet2 из ячейки A1 .

По умолчанию значения вставлялись с исходным форматированием.

Например, значения строк заголовка выделены жирным шрифтом.

Если вы хотите вставить только значения без форматирования источника, вы можете указать Paste:=xlPasteValues следующим образом:

 Sub CopyRangeToSheet()

Worksheets(" Sheet1 ").Range(" A1:C11 ").Copy
Worksheets(" Sheet2 ").Range(" A1 ").PasteSpecial Paste=xlPasteValues

Application.CutCopyMode = False

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод в Sheet2 :

Обратите внимание, что на Лист2 были скопированы только значения (без форматирования) из диапазона A1:C11 Листа1 .

Примечание . Полную документацию по методу VBA PasteSpecial можно найти здесь .

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: Как вставить только значения без форматирования
VBA: как скопировать видимые строки на другой лист
VBA: копирование строк на другой лист на основе критериев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *