Перейти до основного контенту

Як скопіювати діапазон з іншого аркуша в Excel за допомогою VBA

3 хв читання
1706 переглядів

Microsoft Excel-це потужний інструмент для роботи з даними, який пропонує широкі можливості для автоматизації рутинних завдань. Однією з таких завдань є копіювання діапазону даних з одного аркуша на інший. У VBA (Visual Basic for Applications) - інтегрованій мові програмування Excel - можна написати скрипт, який зробить це завдання швидко і ефективно.

Для початку необхідно відкрити редактор VBA, натиснувши Alt + F11. У редакторі VBA виберіть аркуш, на якому потрібно скопіювати діапазон даних, а потім виберіть модуль, в якому буде розташовуватися код.

Для копіювання діапазону з іншого аркуша в Excel за допомогою VBA, необхідно використовувати метод Copy. Синтаксис методу Copy наступний: Range.Copy Destination. Як аргумент Range вказується діапазон, який необхідно скопіювати, а в якості аргументу Destination - діапазон, в який потрібно вставити скопійовані дані. Для вказівки діапазону можна використовувати метод Range або просто вказати його адресу в квадратних дужках.

Примітка: перед виконанням операції копіювання переконайтеся, що потрібні листи і діапазони активні.

Після написання і запуску скрипта в VBA, діапазон даних буде успішно скопійований з одного аркуша на інший. Завдяки використанню VBA, можна значно прискорити і автоматизувати роботу з даними в Excel, особливо в разі, коли необхідно копіювати великі обсяги інформації.

Розділ 1: Підготовка

Перш ніж скопіювати діапазон з іншого аркуша в Excel за допомогою VBA, потрібно виконати певну підготовчу роботу.

Крок 1: Відкрийте файл Excel, який містить аркуш, з якого потрібно скопіювати дані.

Крок 2: Перейдіть на лист, з якого потрібно виконати копіювання.

Крок 3: Виділіть потрібний діапазон осередків. Переконайтеся, що ви вибрали весь необхідний діапазон, щоб скопіювати всі потрібні дані.

Після виконання цих кроків можна переходити до написання коду VBA, який виконає копіювання вибраного діапазону.

Розділ 2: Створення макросу

В Excel, щоб скопіювати діапазон даних з одного аркуша на інший, ми можемо використовувати макроси мовою VBA (Visual Basic for Applications). Макроси - це набір команд, які дозволяють автоматизувати різні завдання в Excel.

Створення макросу в Excel дуже просто. Ось кроки, які потрібно виконати:

Крок 1: Відкрийте книгу Excel, в якій знаходяться два аркуші: вихідний аркуш, з якого потрібно скопіювати дані, і цільовий аркуш, на який потрібно скопіювати дані.

Крок 2: Виберіть вкладку "Розробник" у меню Excel. Якщо вкладка "розробник" не відображається, її потрібно додати в Налаштуваннях Excel.

Крок 3: Натисніть на кнопку " Записати макрос "на вкладці"Розробник". Відкриється діалогове вікно "записати макрос".

Крок 4: Введіть ім'я макросу в поле "ім'я макросу". Ви можете вибрати будь-яке унікальне ім'я.

Крок 5: Натисніть кнопку " OK " і Excel почне записувати всі дії, які ви виконуєте.

Крок 6: Перейдіть на оригінальний аркуш і виділіть діапазон, який потрібно скопіювати.

Крок 7: Правою кнопкою миші клацніть на виділений діапазон і виберіть "Копіювати" з контекстного меню.

Крок 8: Перейдіть на цільовий лист і клацніть на комірці, де хочете вставити скопійовані дані.

Крок 9: Правою кнопкою миші клацніть на комірці і виберіть "Вставити" з контекстного меню.

Крок 10: Поверніться в Excel і натисніть на кнопку "Зупинити запис" на вкладці "Розробник". Макрос буде зупинено.

Тепер, коли ви створили макрос, ви можете використовувати його для копіювання діапазону даних з одного аркуша на інший. Просто запустіть макрос і Excel автоматично виконає всі дії, які ви записали.

РОЗДІЛ 3: відкриття іншого листа

Для копіювання діапазону даних з іншого аркуша в Excel за допомогою VBA, необхідно спочатку відкрити цільовий лист.

Для цього можна використовувати об'єкт Worksheets , що дозволяє звертатися до листів в книзі по їх назві або індексу. Перш ніж копіювати діапазон, переконайтеся, що ви знаходитесь на потрібному аркуші.

Щоб відкрити інший лист, виконайте наступні дії:

    Оголосіть змінну для зберігання посилання на лист:

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Название листа")

Тепер ви можете використовувати змінну ws для виконання операцій з даними на відкритому аркуші, включаючи копіювання діапазонів.

Розділ 4: копіювання діапазону

Для копіювання діапазону з одного аркуша на інший в Excel за допомогою VBA, ви можете використовувати метод Range.Copy. Цей метод копіює вміст вибраного діапазону в буфер обміну, дозволяючи вставити його в інший діапазон.

Щоб скопіювати діапазон, спочатку потрібно вказати вихідний діапазон, а потім цільовий діапазон, куди ви хочете його скопіювати.

Нижче наведено приклад коду VBA, який демонструє, як скопіювати діапазон з одного аркуша на інший:

Sub CopyRange()Dim sourceSheet As WorksheetDim targetSheet As WorksheetDim sourceRange As RangeDim targetRange As Range' Указываем исходный лист и диапазонSet sourceSheet = ThisWorkbook.Sheets("Исходный лист")Set sourceRange = sourceSheet.Range("A1:D10")' Указываем целевой лист и диапазонSet targetSheet = ThisWorkbook.Sheets("Целевой лист")Set targetRange = targetSheet.Range("E1")' Копируем исходный диапазон в буфер обменаsourceRange.Copy' Вставляем содержимое из буфера обмена в целевой диапазонtargetRange.PasteSpecial Paste:=xlPasteValues' Очищаем буфер обменаApplication.CutCopyMode = FalseEnd Sub

У цьому прикладі коду ми спочатку вказуємо вихідний аркуш (sourceSheet) та вихідний діапазон (sourceRange), який ми хочемо скопіювати. Потім ми вказуємо цільовий аркуш (targetSheet) та цільовий діапазон (targetRange), куди ми хочемо вставити скопійований вміст.

Ми використовуємо метод Range.Copy для копіювання вихідного діапазону в буфер обміну, а потім використовуємо метод Range.PasteSpecial, вказуючи xlpastevalues як аргумент Paste. Це гарантує, що тільки значення будуть вставлені в цільовий діапазон, без форматування або формул.

Нарешті, ми очищаємо буфер обміну, встановлюючи властивість Application.CutCopyMode в False.

Ви можете змінити імена аркушів і діапазонів, щоб відповідати Вашому конкретному випадку. Крім того, ви можете використовувати цей приклад коду як основу для копіювання діапазонів з різних аркушів і в різні діапазони.

Розділ 5: Перевірка та збереження

Після виконання копіювання діапазону даних з іншого аркуша в Excel за допомогою VBA, може бути корисно виконати перевірку і збереження отриманих результатів. У цьому розділі ми розглянемо, як виконати ці завдання.

Перевірка даних

Перед збереженням скопійованого діапазону даних нам необхідно виконати перевірку того, що дані були успішно скопійовані і відображені на новому аркуші. Для цього ми можемо використовувати різні методи, включаючи:

  • Порівняння значень у вихідному діапазоні даних із значеннями в скопійованому діапазоні, щоб переконатися, що вони збігаються.
  • Перевірка наявності помилок або неправильно скопійованих даних, які могли виникнути в процесі виконання копіювання.

Якщо перевірка показує, що дані були скопійовані правильно і не містять помилок, то ми можемо перейти до наступного кроку - збереження.

Збереження даних

Збереження даних у Excel за допомогою VBA можна виконати за допомогою методу SaveAs . Цей метод дозволяє вибрати ім'я файлу та місце збереження даних.

Приклад використання методу SaveAs :

Sub SaveData()Dim filePath As String' Получение пути к файлу сохраненияfilePath = "C:\Папка\файл.xlsx"' Сохранение данныхThisWorkbook.SaveAs filePathEnd Sub

У цьому прикладі ми визначаємо шлях до файлу збереження у змінній filePath . Потім, використовуючи метод SaveAs, ми зберігаємо поточну книгу Excel за вказаним шляхом.

Якщо вам потрібно зберегти дані в іншому форматі, такому як CSV або PDF, вам потрібно вказати відповідне розширення файлу та вибрати відповідний формат збереження.

Після успішного збереження даних ви можете закрити поточну книгу Excel або продовжити роботу з іншими діями.