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: копирование строк на другой лист на основе критериев