Sub FilterCopy()
Dim rngTarget As Range, rng1 As Range, rng2 As Range, rngMyRange As Range
Const Crit1 As String = "Crit1"
Const Crit2 As String = "Crit2"
Const Crit3 As String = "Crit3"
Application.ScreenUpdating = False
With Worksheets("Sheet1")
Rows(1).Insert
.Range("A1").Value = "dummy"
'set up dummy header
Set rngTarget = .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
'set the range to work with
rngTarget.AutoFilter Field:=1, Criteria1:=Crit1, Operator:=xlOr, Criteria2:=Crit2
'get first two criteria
Rows(1).Hidden = True
'hide dummy header
Set rng1 = rngTarget.SpecialCells(xlCellTypeVisible)
'range with first 2
rngTarget.AutoFilter
'reset autofilter
rngTarget.AutoFilter Field:=1, Criteria1:=Crit3
'get third criteria
Rows(1).Hidden = True
'hide dummy header
Set rng2 = rngTarget.SpecialCells(xlCellTypeVisible)
'range with 3rd
rngTarget.AutoFilter
Set rngMyRange = Union(rng1, rng2)
'combine the range
rngMyRange.EntireRow.Copy _
Destination:=Worksheets("Sheet2").Range("A65536").End(xlUp).Offset(1, 0)
'or whatever you want to do ...
End With
Application.ScreenUpdating = True
End Sub