Как скопировать строки из нескольких листов на основе критериев в новый лист?
Предположим, у вас есть книга с тремя листами, которые имеют одинаковое форматирование, как показано на скриншоте ниже. Теперь вы хотите скопировать все строки из этих листов, где столбец C содержит текст «Завершено», в новый рабочий лист. Как можно быстро и легко решить эту проблему, не копируя и не вставляя их по одной вручную?
![]() | ![]() | ![]() |
Скопируйте строки из нескольких листов на основе критериев в новый лист с помощью кода VBA
Скопируйте строки из нескольких листов на основе критериев в новый лист с помощью кода VBA
Следующий код VBA может помочь вам скопировать определенные строки со всех листов книги на основе определенного условия в новый рабочий лист. Пожалуйста, сделайте следующее:
1. Нажмите и удерживайте клавиши ALT + F11, чтобы открыть окно Microsoft Visual Basic for Applications.
2. Щелкните Вставить > Модуль и вставьте следующий код в окно Модуля.
Код 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 в этом Set xRg = xWs.Range("C:C") скрипте указывает конкретный столбец, где находится условие.
3. Затем нажмите клавишу F5, чтобы запустить этот код, и все строки с определенным условием будут скопированы и вставлены в новый рабочий лист под названием Kutools for Excel в текущей книге. Смотрите скриншот:
Больше статей о перетаскивании или копировании данных:
- Копирование данных в другой рабочий лист с помощью расширенного фильтра в Excel
- Обычно мы можем быстро применить функцию Расширенного фильтра для извлечения данных из исходных данных в том же рабочем листе. Но иногда, когда вы пытаетесь скопировать отфильтрованный результат в другой рабочий лист, вы получите следующее предупреждающее сообщение. В этом случае, как можно справиться с этой задачей в Excel?
- Копирование строк в новый лист на основе критериев столбца в Excel
- Например, есть таблица покупок фруктов, и теперь вам нужно скопировать записи в новый лист на основе указанного фрукта, как это сделать легко в Excel? Здесь я представлю несколько методов копирования строк в новый лист на основе критериев столбца в Excel.
- Копирование строк, если столбец содержит определенный текст/значение в Excel
- Предположим, вы хотите найти ячейки, содержащие определенный текст или значение в столбце, а затем скопировать всю строку, где находится найденная ячейка, как вы можете с этим справиться? Здесь я представлю несколько методов поиска, если столбец содержит определенный текст или значение, а затем копирует всю строку в Excel.
Лучшие инструменты для повышения производительности Office
Kutools для Excel решает большинство ваших проблем и увеличивает вашу продуктивность на 80%
- Супер строка формул (легкое редактирование нескольких строк текста и формул); Режим чтения (удобное чтение и редактирование большого количества ячеек); Вставка в отфильтрованный диапазон...
- Объединение ячеек/строк/столбцов с сохранением данных; Разделение содержимого ячеек; Объединение дублирующихся строк с подсчетом суммы/среднего значения... Предотвращение дублирования ячеек; Сравнение диапазонов...
- Выбор дублирующихся или уникальных строк; Выбор пустых строк (все ячейки пустые); Супер поиск и нечеткий поиск во многих книгах; Случайный выбор...
- Точное копирование нескольких ячеек без изменения ссылок на формулы; Автоматическое создание ссылок на несколько листов; Вставка маркеров, флажков и многое другое...
- Избранные и быстрая вставка формул, диапазонов, диаграмм и изображений; Шифрование ячеек с паролем; Создание списка рассылки и отправка электронных писем...
- Извлечение текста, добавление текста, удаление по позиции, удаление пробелов; Создание и печать статистики страниц; Преобразование между содержимым ячеек и комментариями...
- Супер фильтр (сохранение и применение схем фильтрации к другим листам); Расширенная сортировка по месяцу/неделе/дню, частоте и другим параметрам; Специальный фильтр по жирному шрифту, курсиву...
- Объединение книг и листов; Объединение таблиц на основе ключевых столбцов; Разделение данных на несколько листов; Пакетное преобразование xls, xlsx и PDF...
- Группировка сводной таблицы по номеру недели, дню недели и другим параметрам... Отображение разблокированных, заблокированных ячеек разными цветами; Выделение ячеек, содержащих формулы/имена...

- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов в новых вкладках одного окна, а не в новых окнах.
- Увеличивает вашу продуктивность на 50% и экономит сотни кликов мышью каждый день!
