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

Excel макрос копіювання рядків на інший аркуш-докладна інструкція з прикладами / наукові статті про Програмування на ITZone

9 хв читання
344 переглядів

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

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

Для створення макросу копіювання рядків на інший аркуш, вам необхідно відкрити Visual Basic Editor в Excel. У меню "Розробник" виберіть "Visual Basic". У вікні, виберіть "Вставка" - "Модуль" для створення нового модуля. У вікні, вставте наступний код:

'Вказуємо назву вихідного листа і листа для копіювання

Dim SourceSheet As Worksheet

Dim TargetSheet As Worksheet

Set SourceSheet = ThisWorkbook.Sheets ("оригінальний аркуш")

Set TargetSheet = ThisWorkbook.Sheets ("Лист для копіювання")

'Вказуємо стовпець і значення для фільтрації рядків

Dim FilterColumn As Integer

Dim FilterValue As Variant

FilterColumn = 2 ' наприклад, стовпець B

FilterValue = "значення для фільтрації"

'Перебираємо всі рядки і копіюємо потрібні на інший лист

Dim i As Long

For i = 1 To SourceSheet.Cells(Rows.Count, FilterColumn).End(xlUp).Row

If SourceSheet.Cells(i, FilterColumn).Value = FilterValue Then

SourceSheet.Rows(i).Copy Destination:=TargetSheet.Cells(TargetSheet.Cells(Rows.Count, FilterColumn).End(xlUp).Row + 1, 1)

End If

Next i

'Викликаємо повідомлення про завершення копіювання

MsgBox " копіювання рядків завершено!", vbInformation

End Sub

Приклади використання макросу Excel для копіювання рядків на інший аркуш

Приклад 1:

Припустимо, у вас є лист "Оригінальний лист", що містить інформацію про товари: артикул, назва, кількість і ціна. Ви хочете скопіювати всі рядки, в яких кількість товару більше 10, на новий аркуш "Новий лист".

1. Відкрийте вкладку "Розробник" у меню Excel і виберіть "Візуальний базовий редактор".

2. У вікні редактора, вставте наступний код:

Sub CopyRows()Dim SourceSheet As WorksheetDim NewSheet As WorksheetDim i As Long, LastRow As LongSet SourceSheet = ThisWorkbook.Sheets("Исходный лист")Set NewSheet = ThisWorkbook.Sheets("Новый лист")LastRow = SourceSheet.Cells(Rows.Count, 1).End(xlUp).RowFor i = 2 To LastRowIf SourceSheet.Cells(i, 3).Value > 10 ThenSourceSheet.Rows(i).Copy Destination:=NewSheet.Rows(i - 1)End IfNext iMsgBox "Копирование завершено!"End Sub

3. Змініть назви листів "Оригінальний лист" і "Новий лист" на свої.

4. Натиснути F5 або виберіть Виконати-запустити підпрограму.

5. Рядки, де кількість товару більше 10, будуть скопійовані на лист "Новий лист".

Приклад 2:

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

1. Відкрийте вкладку "Розробник" у меню Excel і виберіть "Візуальний базовий редактор".

2. У вікні редактора, вставте наступний код:

Sub CopyReturns()Dim SalesSheet As WorksheetDim ReturnsSheet As WorksheetDim i As Long, LastRow As LongSet SalesSheet = ThisWorkbook.Sheets("Продажи")Set ReturnsSheet = ThisWorkbook.Sheets("Возвраты")LastRow = SalesSheet.Cells(Rows.Count, 1).End(xlUp).RowFor i = 2 To LastRowIf SalesSheet.Cells(i, 3).Value < 0 ThenSalesSheet.Rows(i).Copy Destination:=ReturnsSheet.Rows(ReturnsSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1)End IfNext iMsgBox "Копирование завершено!"End Sub

3. Змініть назви листів "Продаж" і "Повернення" на свої.

4. Натиснути F5 або виберіть Виконати-запустити підпрограму.

5. Рядки з поверненнями товарів будуть скопійовані на лист "Повернення".

Короткий опис макросу Excel та його призначення

Макрос в Excel являє собою записаний набір дій, який можна виконати і повторити автоматично. Він дозволяє автоматизувати рутинні завдання, спростити роботу зі складними формулами і маніпуляціями з даними.

Основне призначення макросу Excel-спрощення роботи з даними, обробка та аналіз інформації, створення звітів і таблиць. Він може виконувати як прості дії, так і складні операції, включаючи сортування, фільтрацію, копіювання, форматування тощо.

Створення макросів в Excel дозволяє значно прискорити роботу, мінімізувати можливість помилок і підвищити продуктивність. Макроси можна запускати як за допомогою кнопки, так і прив'язувати їх до певних подій, наприклад, зміни значення комірки або відкриття документа.

Крім того, макроси в Excel можуть бути корисними не тільки для індивідуального користувача, але і для команди, дозволяючи автоматизувати завдання і скоротити час виконання проектів.

Приклади робочих наборів макросів в Excel:

  1. Автоматична фільтрація і сортування даних в таблиці.
  2. Створення набору звітів на основі наявних даних.
  3. Спрощення роботи зі складними формулами і функціями.
  4. Автоматичне форматування і стилізація таблиць і документів.
  5. Копіювання даних з одного листа на інший.

Макроси Excel відкривають безліч можливостей для оптимізації роботи з даними. Вони дозволяють заощадити час і ресурси, а також скоротити можливість помилок. Незалежно від рівня досвіду у використанні макросів і VBA, Excel надає широкі можливості для створення і автоматизації завдань, спрощуючи роботу користувачам будь-якого рівня.

Кроки для створення та використання макросу

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

Крок 1: Відкрийте файл Excel і перейдіть на вкладку "Розробник". Якщо ця вкладка відсутня, її потрібно додати. Щоб це зробити, виберіть "Файл", потім "Параметри", перейдіть на вкладку "Параметри стрічки"та поставте прапорець біля "Розробник". Натисніть "OK", щоб зберегти зміни.

Крок 2: Перейдіть на вкладку "Розробник" і натисніть на кнопку "Записати макрос". Введіть назву свого макросу та виберіть місце, де він буде зберігатися (наприклад, "Книга Excel" або "зовнішня книга"). Натисніть "OK", щоб розпочати запис макросу.

Крок 3: Виконайте необхідні дії, які повинен виконувати ваш макрос. Наприклад, ви можете виділити клітинки, скопіювати їх і вставити на іншому аркуші. Ви також можете виконувати інші операції, такі як форматування або сортування даних.

Крок 4: Після виконання всіх необхідних дій натисніть на кнопку " Зупинити запис макросу "на вкладці"Розробник".+

Крок 5: Тепер, щоб виконати макрос, просто перейдіть на вкладку "Розробник", виберіть назву макросу та натисніть кнопку "Виконати". Всі дії, які ви записали в макросі, будуть автоматично виконані.

Ось простий приклад макросу, який копіює рядки з одного аркуша на інший:

Sub CopyRows()Dim i As IntegerDim LastRow As Integer'Определение последней заполненной строки на первом листеLastRow = Sheets("Лист1").Cells(Rows.Count, 1).End(xlUp).Row'Копирование строк с первого листа на второйFor i = 2 To LastRowSheets("Лист1").Rows(i).Copy Destination:=Sheets("Лист2").Rows(i)Next iEnd Sub

Цей макрос скопіює всі рядки, починаючи з другого рядка, з аркуша "Лист1"на " Лист2". Ви можете змінити назви аркушів на власні залежно від ваших потреб.

Примітка: щоб використовувати макроси у файлі Excel, переконайтеся, що ви зберігаєте його з розширенням ".xlsm "або".xlsb". Це дозволить вам зберегти макроси разом із файлом.