Зміст
Коли вам потрібно, ви можете скопіювати діапазон з одного аркуша на інший аркуш або книгу. Існують різні типи копіювання та вставки. У цій статті ви дізнаєтесь про різні способи використання Excel VBA для копіювання діапазону на інший аркуш.
Щоб зробити пояснення наочним, я буду використовувати приклад набору даних, який представляє персональну інформацію конкретних осіб. Набір даних має 4 стовпці. Ці стовпці - це Ім'я, прізвище, по батькові, і Електронна пошта .
Завантажити Робочий зошит до практики
VBA Копіювання діапазону на інший аркуш.xlsm8 способів копіювання діапазону в Excel VBA на інший аркуш
1. Копіювання діапазону на інший аркуш за допомогою форматування
Коли захочете Прийом. діапазон від одного аркуша до іншого аркуша з Формат Ви можете просто зробити це, скориставшись VBA .
Ось, я Прийом. в діапазоні від Набір даних аркуш до WithFormat простирадло.
Починаємо процедуру,
По-перше, відкрийте Розробник вкладка>> вибрати Visual Basic
Ви також можете скористатися ALT + F11 клавіатури, щоб відкрити VBA редактор.
Далі відкриється нове вікно з назвою Microsoft Visual Basic для додатків.
Звідти відкрито Вставка вибрати Модуль .
A Модуль відкриється, введіть у вікні наступний код Модуль .
Sub Копіювати_діапазон_з_форматом_на_інший_аркуш() Діапазон("B1:E10").КопіюватиАркуші("Зформатом").Діапазон("B1:E10") End Sub
Тут я оголосив про те, що Підпроцедура Копіювати_діапазон_з_форматуванням_на_інший_аркуш
Я зайняв позицію. B1:E10 скопіювати з існуючого аркуша на аркуш з назвою WithFormat .
Тут я використовував Прийом. метод копіювання виділеного діапазону, Прийом. метод копіює будь-який діапазон з Формат .
Нарешті, Зберегти код і поверніться на робочий аркуш.
Далі відкриваємо розділ Вид вкладка>> від Макроси вибрати Перегляд макросів
➤ A діалогове вікно з'явиться.
Наразі, від Назва макросу виберіть пункт Копіювати_діапазон_з_форматуванням_на_інший_аркуш також виберіть робочу книгу в межах Макроси в .
Нарешті, Біжи обраний Макрос .
Таким чином, це буде Прийом. обраний діапазон з Формат на новий аркуш, який я вибрав ( WithFormat) .
2. копіювання діапазону на інший аркуш без форматування у VBA
Також є можливість Прийом. діапазон на інший аркуш без Формат за допомогою VBA .
Ось, я Прийом. в діапазоні від Набір даних аркуш до WithoutFormat простирадло.
Починаємо процедуру,
А тепер відкрийте Розробник вкладка>> вибрати Visual Basic ( використовуйте ALT + F11)
Далі буде відкрито Microsoft Visual Basic для додатків.
Тоді відкриваємо Вставка вибрати Модуль .
A Модуль відкриється, введіть у вікні наступний код Модуль .
Sub Копіювання_діапазону_без_формату_на_інший_аркуш() Діапазон("B1:E10").Копіювання_аркушів("Без_формату").Діапазон("B1").ВставкаСпеціальна _ Вставка:=xlВставитиЗначення, Операція:=xlНі, ПропускПропусків _ :=False, Транспонувати:=False End Sub
Тут я оголосив про те, що Підпроцедура Копіювати_діапазон_без_формату_на_інший_аркуш
Я зайняв позицію. B1:E10 скопіювати з існуючого аркуша на аркуш з назвою WithoutFormat .
Тут я використовував Прийом. метод копіювання виділеного діапазону, але також згадується Paste:=xlPasteValues в PasteSpecial метод, щоб він вставляв тільки Цінності обраного діапазону, а не формату.
Нарешті, Зберегти код і поверніться на робочий аркуш.
Далі відкрийте розділ Вид вкладка>> від Макроси вибрати Перегляд макросів
➤ A діалогове вікно з'явиться.
Наразі, від Назва макросу виберіть пункт Копіювати_діапазон_без_формату_на_інший_аркуш а також вибрати робочу книгу в межах Макроси в .
Нарешті, Біжи обраний Макрос .
Таким чином, це дозволить Прийом. обраний діапазон тільки з Цінності ні Формат .
3. копіювання діапазону на інший аркуш із збереженням формату та ширини стовпців
Іноді вам може знадобитися Прийом. будь-який обраний асортимент як є, для цього ви можете Прийом. діапазон з Формат і Ширина колонки .
Ось, я Прийом. в діапазоні від Набір даних аркуш до Формат & Ширина стовпця простирадло.
Ознайомитися з процедурою виконання завдання можна за допомогою VBA ,
По-перше, відкрийте Розробник вкладка>> вибрати Visual Basic
Ви також можете скористатися ALT + F11 клавіатури, щоб відкрити VBA редактор.
Далі відкриється нове вікно з Microsoft Visual Basic для додатків.
Ось, відкривай. Вставка вибрати Модуль .
A Модуль відкриється, введіть у вікні наступний код Модуль .
Sub Копіювання_діапазону_на_інший_аркуш_з_форматом_та_шириною_стовпців() Діапазон("B1:E10").Копіювання Призначення:=Аркуші("Формат та ширина стовпців").Діапазон("B1") Діапазон("B1") Діапазон("B1:E10").Копіювання Аркуші("Формат та ширина стовпців").Діапазон("B1").КопіюванняСпеціальна вставка Вставка:=xlВставитиШирину_Стовпців, _Операція:=xlНемає, ПропускПропусків:=Ложь, Перемістити:=Ложь Кінець Sub
Тут я оголосив про те, що Підпроцедура Копіювати_діапазон_на_інший_аркуш_з_форматом_та_шириною_стовпців
Я зайняв позицію. B1:E10 для копіювання з існуючого аркуша на аркуш призначення з назвою Формат & Ширина стовпця .
Тут я використовував Прийом. для копіювання виділеного діапазону. Я також використовував метод PasteSpecial метод, де я згадував Paste:=xlPasteColumnWidths щоб він вставив вибраний діапазон разом з Формат і Ширина колонки .
Нарешті, Зберегти код і поверніться на робочий аркуш.
Далі відкриваємо розділ Вид вкладка>> від Макроси вибрати Перегляд макросів
➤ A діалогове вікно з'явиться.
Наразі, від Назва макросу виберіть пункт Копіювати_діапазон_на_інший_аркуш_з_форматом_та_шириною_стовпців а також вибрати робочу книгу в межах Макроси в .
Нарешті, Біжи обраний Макрос .
Як наслідок, це дозволить Прийом. обраний діапазон з Формат і Ширина колонки .
4. копіювання діапазону на інший аркуш за допомогою формули в VBA
Якщо у вашому наборі даних є формула, яку ви хочете скопіювати, не хвилюйтеся! Ви можете скопіювати діапазон, що містить Формула на інший аркуш зі збереженням формули.
Ось, я Прийом. в діапазоні від Набір даних аркуш до WithFormula аркуш
Починаємо процедуру,
Для початку відкрийте розділ Розробник вкладка>> вибрати Visual Basic ( Ви також можете скористатися ALT + F11 клавіатура)
Далі буде відкрито Microsoft Visual Basic для додатків.
Звідти відкрито Вставка вибрати Модуль .
A Модуль відкриється, введіть у вікні наступний код Модуль .
Sub Копіювати_діапазон_з_формулою_на_інший_аркуш() Діапазон("B1:E10").КопіюватиАркуші("ЗФормулою").Діапазон("B1").ВставитиСпеціальнуВставку:=xlВставитиФормули, _ Операція:=xlНі, ПропускПропусків:=False, Транспонування:=False End Sub
Тут я оголосив про те, що Підпроцедура Копіювати_діапазон_з_формулою_на_інший_аркуш
Я зайняв позицію. B1:E10 для копіювання з існуючого аркуша на аркуш призначення з назвою WithFormula .
Тут я використовував Прийом. для копіювання виділеного діапазону. Я також використовував метод PasteSpecial метод, де я згадував Вставити:=xlВставитиФормули щоб вона несла в собі Формули разом з обраним діапазоном.
Нарешті, Зберегти код і поверніться на робочий аркуш.
Потім відкрийте Вид вкладка>> від Макроси вибрати Перегляд макросів
➤ A діалогове вікно з'явиться.
Наразі, від Назва макросу виберіть пункт Копіювати_діапазон_з_формулою_на_інший_аркуш також виберіть робочу книгу в межах Макроси в .
Нарешті, Біжи обраний Макрос .
Таким чином, це дозволить Прийом. всі виділені діапазони комірок з Формули .
Схожі читання:
- Як використовувати зміщення діапазону в VBA (11 способів)
- VBA для кожної комірки діапазону в Excel (3 способи)
- Як використовувати об'єкт діапазону VBA в Excel (5 властивостей)
5. копіювання діапазону з автопідбором на інший аркуш
У той час як Копіювання діапазону на інший аркуш ви також можете використовувати AutoFit метод в VBA до AutoFit скопійований діапазон на новому аркуші.
Ось, я Прийом. в діапазоні від Набір даних аркуш до AutoFit аркуш
Починаємо процедуру,
По-перше, відкрийте Розробник вкладка>> вибрати Visual Basic
Ви також можете скористатися ALT + F11 клавіатури, щоб відкрити VBA редактор.
Далі відкриється вікно з Microsoft Visual Basic для додатків.
Тоді відкриваємо Вставка вибрати Модуль .
A Модуль відкриється, введіть у вікні наступний код Модуль .
Sub Копіювання_діапазону_з_форматом_автопідбір() Аркуші("Набір даних").Виділити діапазон("B1:E10").Копіювання Аркуші("Автопідбір").Виділити діапазон("B1").Виділити активний аркуш.Вставити стовпці("B:E").Автопідбір End Sub
Тут я оголосив про те, що Підпроцедура Копіювати_діапазон_з_форматом_автопідбір
Спочатку я вибрав робочий аркуш Набір даних Потім береться діапазон B1:E10 для копіювання з існуючого аркуша на аркуш призначення з іменем AutoFit .
Тут я використовував Прийом. для копіювання виділеного діапазону і метод AutoFit метод автоматично підставить задані стовпці B:E .
Нарешті, Зберегти код і поверніться на робочий аркуш.
Далі відкриваємо розділ Вид вкладка>> від Макроси вибрати Перегляд макросів
➤ A діалогове вікно з'явиться.
Наразі, від Назва макросу виберіть пункт Копіювати_діапазон_з_форматом_автопідбір також виберіть робочу книгу в межах Макроси в .
Нарешті, Біжи обраний Макрос .
Таким чином, це буде Прийом. виділений діапазон на новий аркуш, а також AutoFit колони.
6. копіювання діапазону в іншу книгу за допомогою VBA
За бажанням ви також можете Прийом. діапазон від одного аркуша до іншого аркуша іншої книги.
Ось, я Прийом. в діапазоні від Набір даних аркуш до Аркуш1 з Книга 1 робочий зошит.
Починаємо процедуру,
По-перше, відкрийте Розробник вкладка>> вибрати Visual Basic (y Ви також можете скористатися ALT + F11 клавіатура)
Потім відкриється Microsoft Visual Basic для додатків.
Далі, відкриваємо Вставка вибрати Модуль .
A Модуль відкриється, введіть у вікні наступний код Модуль .
Sub Копіювання_діапазону_з_форматом_на_іншу_книгу() Книги("Excel VBA Копіювання діапазону на інший аркуш.xlsm").Аркуші("Набір даних").Діапазон("B3:E10"). _ Копіювання Книги("Книга1").Аркуші("Лист1").Діапазон("B3") End Sub
Тут я оголосив про те, що Підпроцедура Копіювання_діапазону_з_форматом_в_іншу_робочу_книгу
Я зайняв позицію B3:E10 від назви аркуша Набір даних скопіювати з існуючого аркуша в нову книгу з новим ім'ям Книга 1 та назва аркуша Аркуш1 .
Тут я використовував Прийом. метод для копіювання виділеного діапазону в нову книгу.
Нарешті, Зберегти код і поверніться на робочий аркуш.
Далі відкриваємо розділ Вид вкладка>> від Макроси вибрати Перегляд макросів
➤ A діалогове вікно з'явиться.
Наразі, від Назва макросу виберіть пункт Копіювання_діапазону_з_форматом_в_іншу_робочу_книгу також виберіть робочу книгу в межах Макроси в .
Нарешті, Біжи обраний Макрос .
Тепер це буде Прийом. обраного діапазону з переліку Набір даних аркуш до іншого робочого зошита.
7. копіювання діапазону в останній рядок іншого аркуша
У будь-якому випадку, якщо Ви бажаєте Прийом. діапазону на інший аркуш з певної комірки або останньої комірки можна зробити за допомогою кнопки VBA .
Перед тим, як розпочати процедуру, я хочу вам сказати, що я взяв два нових аркуші, які складаються з Прізвище, ім'я, по батькові, адреса електронної пошти, і Адреса .
Спостерігаємо за Набір даних2 спочатку простелите аркуш.
Пропонуємо вашій увазі Нижче останньої комірки простирадло.
Ось, я Прийом. в діапазоні від Набір даних2 аркуш до Нижче останньої комірки але з першої непорожньої клітинки.
Для початку відкрийте розділ Розробник вкладка>> вибрати Visual Basic
Далі буде відкрито Microsoft Visual Basic для додатків.
Тоді відкриваємо Вставка вибрати Модуль .
A Модуль відкриється, введіть у вікні наступний код Модуль .
Sub Copy_Range_BelowLastCell_AnotherSheets() Sheets("Dataset2").Select lr = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Range("A2:C" & lr).Copy Sheets("Below Last Cell").Select lrAnotherSheet = Cells.Find("*", Cells(1, 1), xlFormulas, xlPart, xlByRows, xlPrevious, False).Row Cells(lrAnotherSheet + 1, 1).Select ActiveSheet.Paste Columns("A:C").AutoFit EndSub
Тут я оголосив про те, що Підпроцедура Копіювати_діапазон_нижче_останньої_комірки_інших_аркушів
Спочатку я вибрав аркуш Набір даних2 а потім використовував Ряд метод для підрахунку Останній ряд і тримав лічильний ряд у lr .
Далі взята дальність стрільби A2:C & lr для копіювання з існуючого аркуша на аркуш призначення з назвою Нижче останньої комірки .
Знову ж таки, використовуючи Ряд метод для підрахунку Останній ряд іншого аркуша на ім'я Нижче останньої комірки і тримав лічильний ряд у lr Інший аркуш .
Тут я використовував Прийом. для копіювання виділеного діапазону і метод AutoFit метод автоматично підставить задані стовпці A:C .
Нарешті, Зберегти код і поверніться на робочий аркуш.
Далі відкрийте розділ Вид вкладка>> від Макроси вибрати Перегляд макросів
➤ A діалогове вікно з'явиться.
Наразі, від Назва макросу виберіть пункт Копіювати_діапазон_нижче_останньої_комірки_інших_аркушів також виберіть робочу книгу в межах Макроси в .
Нарешті, Біжи обраний Макрос .
Таким чином, це буде Прийом. обраний діапазон і буде Паста його з останнього ряду іншого аркуша.
8. копіювання діапазону в останній рядок іншої книги за допомогою VBA
Якщо ви хочете Прийом. діапазон до останнього рядка іншого аркуша робочої книги, ви також можете використовувати VBA .
Ось, я Прийом. в діапазоні від Набір даних2 аркуш до Аркуш1 з Книга 2 але з першої непорожньої клітинки.
Запустити процедуру,
По-перше, відкрийте Розробник вкладка>> вибрати Visual Basic
Ви також можете скористатися ALT + F11 клавіатури, щоб відкрити VBA редактор.
Далі відкриється нове вікно з Microsoft Visual Basic for Applications.
Звідти відкрито Вставка вибрати Модуль .
A Модуль відкриється, введіть у вікні наступний код Модуль .
Sub Copy_Range_BelowLastCell_To_Another_Workbook() Dim wsCopy As Worksheet Dim wsDestination As Worksheet Dim lCopyLastRow As Long Dim lDestLastRow As Long Set wsCopy = Workbooks("Excel VBA Копирование диапазона на другой лист.xlsm").Worksheets("Набор данных2") Set wsDestination = Workbooks("Книга2.xlsx").Worksheets("Лист1") lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A").End(xlUp).Row lDestLastRow =wsDestination.Cells(wsDestination.Rows.Count, "A").End(xlUp).Offset(1).Row wsCopy.Range("A2:C" & lCopyLastRow).Copy wsDestination.Range("A" & lDestLastRow) End Sub
Тут я оголосив про те, що Підпроцедура Копіювати_діапазон_під_останньою_коміркою_в_іншу_книгу де wsCopy і wsПризначення є Робочий аркуш тип, lCopyLastRow і lDestLastRow є Довгий тип.
По-перше, використано Набір задати змінні для аркуша для копіювання та аркуша призначення.
Далі, використовуючи Ряд метод знаходження останнього рядка за даними стовпця A в діапазоні копіювання.
Знову ж таки, використовуючи Ряд метод знаходження першого порожнього рядка за даними стовпця A в діапазоні призначення також використовується Зміщення знести один об'єкт нерухомості.
Нарешті, Скопійовано дані Набір даних2 аркуш від Excel VBA Копіювання діапазону на інший аркуш.xlsm трудову книжку до місця призначення Аркуш1 трудової книжки Book2.xlsx .
Негайно, Зберегти код і поверніться на робочий аркуш.
Далі відкриваємо розділ Вид вкладка>> від Макроси вибрати Перегляд макросів
➤ A діалогове вікно з'явиться.
Наразі, від Назва макросу виберіть пункт Копіювати_діапазон_під_останньою_коміркою_в_іншу_книгу також виберіть робочу книгу в межах Макроси в .
Нарешті, Біжи обраний Макрос .
Таким чином, це буде Прийом. виділений діапазон від існуючого аркуша до останнього рядка іншої книги.
Практична секція
Я надав практичний аркуш у робочій книзі для відпрацювання цих пояснених способів роботи з Excel VBA копіювати діапазон на інший аркуш.
Висновок
У цій статті я пояснив 8 різних типів простих і швидких способів роботи з Excel VBA Ці різні способи допоможуть вам скопіювати діапазон з одного аркуша на інший, а також з одного аркуша в іншу книгу. І останнє, але не менш важливе: якщо у вас є які-небудь пропозиції, ідеї та відгуки, будь ласка, не соромтеся коментувати їх нижче.