Как скопировать всю строку с одного листа на другой, если столбец C помечен как Y - PullRequest
0 голосов
/ 01 декабря 2018

У меня три листа в рабочей книге, и я хочу скопировать все строки из всех первых трех листов в лист 4, столбец которого C помечен как Y.

1 Ответ

0 голосов
/ 02 декабря 2018

Я отвечаю на этот вопрос, потому что мне скучно.Приведенный ниже код назначает таблицы для фильтрации в массиве, проходит через массив, фильтрует диапазон, а затем копирует видимые ячейки в данных фильтра.Если «А1» пусто;он вставит скопированные данные с каждого листа в Range("A1"), иначе он вставит данные в первую пустую ячейку в «столбце A».При необходимости измените имена рабочих листов.

Sub FltrPste()
Dim wb As Workbook, shtArr As Variant, wsDest As Worksheet, i As Long, lRow4 As Long

Set wb = ThisWorkbook
shtArr = Array("Sheet1", "Sheet2", "Sheet3")
Set wsDest = wb.Sheets("Sheet4")
lRow = wsDest.Range("A" & Rows.Count).End(xlUp).Row

    For i = LBound(shtArr) To UBound(shtArr)
        With wb.Sheets(shtArr(i)).Range("A1").CurrentRegion
            .AutoFilter
            .AutoFilter Field:=3, Criteria1:="y"
            .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).EntireRow.Copy
                If Range("A1") = "" Then
                    wsDest.Cells(1, 1).PasteSpecial xlPasteValues
                Else
                    wsDest.Cells(Rows.Count, "A").End(xlUp).Offset(1).PasteSpecial xlPasteValues
                End If
                .AutoFilter
        End With
    Next i
End Sub 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...