Excel VBA для копіювання рядків на інший аркуш на основі критеріїв

  • Поділитися Цим
Hugh West

Дані для подолання труднощів на основі критеріїв з одного аркуша на інший - одне з найпоширеніших завдань в Excel. Якщо у вас багато рядків і ви хочете скопіювати їх на інший аркуш на основі певних критеріїв, це може бути досить виснажливим і трудомістким процесом. Visual Basic Application (VBA) можна створювати макроси, за допомогою яких можна легко копіювати дані з одного аркуша на інший за різними критеріями. У цій статті я покажу вам як можна копіювати рядки на інший аркуш на основі 2 різних типів критеріїв за допомогою Excel VBA .

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

Завантажити Практичний посібник

Копіювання рядків на інший аркуш на основі критеріїв.xlsm

2 способи копіювання рядків на інший аркуш на основі критеріїв в Excel VBA

1. Копіювання рядків на інший аркуш на основі текстових критеріїв

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

Натисніть ALT+F11 для відкриття VBA вікно.

В рамках проекту VBA вікно,

Натисніть на кнопку Вставка і виберіть вкладку Модуль .

Він відкриє Модуль (код) вікно. Негайно,

Вставте наступний код в поле Модуль (код) вікно,

 Sub Copy_Criteria_Text() Application.ScreenUpdating = False With ActiveSheet .AutoFilterMode = False With Range("C1", Range("C" & Rows.Count).End(xlUp)) .AutoFilter 1, "Virginia" On Error Resume Next .Offset(1).EntireRow.Copy Sheet3.Range("A" & Rows.Count).End(xlUp).Offset(1) End With .AutoFilterMode = False End With Application.ScreenUpdating = TrueSheet3.Select End Sub 

Код створить макрос з іменем Скопіювати_критерії_текст які будуть шукати Вірджинію в колонці C поточного аркуша і повертає рядки, які містять Вірджинію на аркуші з іменем Територіальні продажі (Аркуш 3).

Після цього,

➤ Закрийте або згорніть вікно VBA вікно.

Натисніть ALT+F8

Він відкриє Макрос вікно.

Виберіть Скопіювати_критерії_текст в Назва макросу і натисніть на кнопку Біжи .

В результаті рядки з Вірджинією будуть скопійовані на аркуші з іменем Територіальні продажі

Читати далі: Як автоматично скопіювати рядки в Excel на інший аркуш (4 способи)

2. копіювання рядків на інший аркуш на основі числових критеріїв

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

Натисніть ALT+F11 для відкриття VBA вікно.

В рамках проекту VBA вікно,

Натисніть на кнопку Вставка і виберіть вкладку Модуль .

Він відкриє Модуль (код) вікно. Негайно,

Вставте наступний код в поле Модуль (код) вікно,

 Sub Копіювання_критеріїв_номер() Додаток.оновлення екрану = False With Активний аркуш .АвтофільтрРежим = False With Діапазон("D1", Діапазон("D" & Кількість рядків).Кінець(xlUp)) .Автофільтр 1, ">100000" При помилці Відновити наступний .Зсув(1).Цілий рядок.Копіювати аркуш4.Діапазон("A" & Кількість рядків).Кінець(xlUp).Зсув(1) Кінець With .АвтофільтрРежим = False Кінець With Додаток.оновлення екрану =Справжній аркуш4.Вибрати кінцевий підпункт 

Код створить макрос з іменем Номер_критерію_копії який буде шукати значення більше 100000 в стовпчику D робочого аркуша з іменем Дані і повернути рядки, які містять значення продажів більше $100000 на аркуші з ім'ям Найкращі продажі (Аркуш 4).

Після цього,

➤ Закрийте або згорніть вікно VBA вікно.

Натисніть ALT+F8

Він відкриє Макрос вікно.

Виберіть Номер_критерію_копії в Назва макросу і натисніть на кнопку Біжи .

В результаті, рядки, які містять значення продажів більше $100000, будуть скопійовані в Найкращі продажі аркуш.

Детальніше: Як скопіювати кілька рядків в Excel за допомогою макросу (4 приклади)

Висновок

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

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.