Перейти до основного матеріалу

Як скопіювати рядки з декількох аркушів на основі критеріїв на новий аркуш?

Припустимо, у вас є робоча книга з трьома робочими аркушами, які мають те саме форматування, що показано нижче. Тепер ви хочете скопіювати всі рядки з цих аркушів, стовпець C яких містить текст «Завершено», на новий аркуш. Як ви могли швидко та легко вирішити цю проблему, не копіюючи та не вставляючи їх по черзі вручну?

Скопіюйте рядки з декількох аркушів на основі критеріїв на новий аркуш із кодом VBA


Скопіюйте рядки з декількох аркушів на основі критеріїв на новий аркуш із кодом VBA

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

1. Утримуйте клавішу ALT + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний код у вікно модуля.

Код VBA: Скопіюйте рядки з декількох аркушів на основі критеріїв на новий аркуш

Public Sub CopyRows_ValuesAndNumberFormats()
Dim xWs As Worksheet
Dim xCWs As Worksheet
Dim xRg As Range
Dim xStrName As String
Dim xRStr As String
Dim xRRg As Range
Dim xC As Integer
On Error Resume Next
Application.DisplayAlerts = False
xStr = "Kutools for Excel"
xRStr = "Completed"
Set xCWs = ActiveWorkbook.Worksheets.Item(xStr)
If Not xCWs Is Nothing Then
    xCWs.Delete
End If
Set xCWs = ActiveWorkbook.Worksheets.Add
xCWs.Name = xStr
xC = 1
For Each xWs In ActiveWorkbook.Worksheets
    If xWs.Name <> xStr Then
        Set xRg = xWs.Range("C:C")
        Set xRg = Intersect(xRg, xWs.UsedRange)
        For Each xRRg In xRg
            If xRRg.Value = xRStr Then
               xRRg.EntireRow.Copy
               xCWs.Cells(xC, 1).PasteSpecial xlPasteValuesAndNumberFormats
               xC = xC + 1
            End If
        Next xRRg
    End If
Next xWs
Application.DisplayAlerts = True
End Sub

примітки: У наведеному вище коді:

  • Текст "Зроблено" у цьому xRStr = "Завершено" скрипт вказує конкретну умову, на основі якої потрібно скопіювати рядки;
  • C: C В цьому Встановити xRg = xWs.Range ("C: C") script вказує конкретний стовпець, де знаходиться умова.

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


Більш відносні статті витягування або копіювання даних:

  • Скопіюйте дані на інший аркуш із розширеним фільтром у Excel
  • Зазвичай ми можемо швидко застосувати функцію розширеного фільтра для вилучення даних із вихідних даних на тому ж аркуші. Але іноді, коли ви намагаєтесь скопіювати відфільтрований результат на інший аркуш, ви отримаєте таке попереджувальне повідомлення. Як у цьому випадку ви могли впоратися з цим завданням у Excel?
  • Копіювати рядки, якщо стовпець містить певний текст / значення в Excel
  • Припустимо, ви хочете дізнатись комірки, що містять певний текст або значення у стовпці, а потім скопіювати весь рядок, де знаходиться знайдена комірка, як би ви могли з цим боротися? Тут я представив пару методів, щоб знайти, чи містить стовпець певний текст або значення, а потім скопіювати весь рядок у Excel.

Найкращі інструменти для підвищення продуктивності офісу

Kutools для Excel вирішує більшість ваших проблем і збільшує продуктивність на 80%

  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці та Ведення даних; Вміст розділених комірок; Поєднуйте повторювані рядки та суму / середнє... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Улюблені та швидко вставлені формули, Діапазони, діаграми та зображення; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Групування зведеної таблиці за номер тижня, день тижня та багато іншого ... Показати розблоковані, заблоковані клітини за різними кольорами; Виділіть клітини, які мають формулу / назву...
вкладка kte 201905
  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Comments (2)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Hi,

thank you very much for the code. I have a question: the code runs smoothly on some of my sheets, but looks like enters an infinite loop in some other ones which makes excel crash. What could the reason be?
This comment was minimized by the moderator on the site
Hello there, thank you so much for the code above, it solved me a problem with a complex file; a solution I have been looking for a while now. Thank you..I have one question. How do I change the code so that it copies the rows but only from colum A to colum Q, so not Entire.Row?Thank you in advance and great work!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations