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 з аркуша Sheet1 і вставити їх, починаючи з клітинки A1 аркуша Sheet2 .
Для цього ми можемо створити такий макрос:
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 :
Зауважте, що лише значення (без форматування) з діапазону A1:C11 аркуша Sheet1 були скопійовані в Sheet2 .
Примітка . Ви можете знайти повну документацію для методу VBA PasteSpecial тут .
Додаткові ресурси
У наступних посібниках пояснюється, як виконувати інші типові завдання у VBA:
VBA: як вставити лише значення без форматування
VBA: Як скопіювати видимі рядки на інший аркуш
VBA: копіювати рядки на інший аркуш на основі критеріїв