Если ячейка в столбце E = "Y", то я хочу скопировать всю строку этой ячейки на лист 2 и сделать это для каждого рабочего листа в книге, кроме листа 2.
Вот код, который я пробовал.
Sub Macro1()
Dim lastrow As Long
Dim cpyrow As String
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "Sheet2" Then
For Each cell In Range("E:E")
If cell.Value = "Y" Then
lastrow = Sheets("Sheet2").Cells(Rows.Count, "A").End(xlUp).Row + 1
cpyrow = cell.Row & ":" & cell.Row
ws.Range(cpyrow).Copy Destination:=Sheets("Sheet2").Range("A" & lastrow)
End If
Next cell
End If
Next ws
End Sub
Иногда он копирует правильную строку, но в других случаях он копирует строки, чья ячейка в столбце E не равна "Y", или пропускает строки, которые это делают. Кроме того, почему это дает разные результаты, когда я запускаю его, когда я нахожусь на разных листах? Разве он не должен работать одинаково и проходить через каждый лист?