Этот код автоматически фильтрует строки в активном листе, где J = 0, копирует их в первую пустую строку на втором листе, а затем удаляет строки из активного листа.
Измените эту строку Set ws2 = Sheets(2)
, чтобы скопировать строки на другой лист, например Set ws2 = Sheets("Your Sheet Name")
или Set ws2 = Sheets(5)
для пятого листа и т. Д.
Sub MoveEm()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = ActiveSheet
Set ws2 = Sheets(2)
Dim rng1 As Range
Application.ScreenUpdating = False
With ws1
.AutoFilterMode = False
.Columns("j").AutoFilter Field:=1, Criteria1:="0"
With .AutoFilter.Range.Offset(1, 0).EntireRow
Set rng1 = ws2.Cells.Find("*", ws2.[a1], xlValues, , xlRows, xlPrevious)
If rng1 Is Nothing Then
Set rng1 = ws2.[a1]
Else
Set rng1 = ws2.Cells(rng1.Row + 1, "A")
End If
.Copy rng1
.Delete
End With
.AutoFilterMode = False
End With
Application.ScreenUpdating = True
End Sub