Okay, this isn't the most efficient code, but it worked on the sample data. As long as your data isn't terribly huge, this should get you started:
Sub Test()
Dim rowCount1 As Long
Dim rowCount2 As Long
rowCount1 = ThisWorkbook.Sheets(1).Range("A2").SpecialCells(xlCellTypeLastCell).Row
rowCount2 = ThisWorkbook.Sheets(2).Range("A2").SpecialCells(xlCellTypeLastCell).Row
Dim rng1 As Range
Dim rng2 As Range
Set rng1 = ThisWorkbook.Sheets(1).Range("A2:A" & rowCount1)
Set rng2 = ThisWorkbook.Sheets(2).Range("A2:A" & rowCount2)
Dim sheet1() As Variant
ReDim sheet1(rowCount1 - 1, 2)
Dim n As Long
n = 0
For Each cell In rng1.Cells
sheet1(n, 0) = cell.Value
sheet1(n, 1) = cell.Offset(0, 2).Value
sheet1(n, 2) = cell.Offset(0, 5).Value
Debug.Print cell.Value
n = n + 1
Next cell
Dim currentRow As Long
currentRow = 1
For n = 0 To UBound(sheet1)
For Each cell In rng2.Cells
If cell.Value = sheet1(n, 0) And cell.Offset(0, 1).Value = sheet1(n, 1) And cell.Offset(0, 2).Value = sheet1(n, 2) Then
ThisWorkbook.Sheets(1).Rows(n + 2).Copy Destination:=ThisWorkbook.Sheets(3).Range("A" & currentRow)
currentRow = currentRow + 1
GoTo NextIteration
End If
Next cell
NextIteration:
Next n
End Sub
Response to New Code
Change the loops to the following:
''UPDATED OFFSET TO MATCH ROWS IN SHEET 3
For Each cell In rng1.Cells
For Each cell2 In rng2.Cells
If cell2.Value = cell.Value And cell2.Offset(0, 5).Value = cell.Offset(0, 5).Value And cell2.Offset(0, 2).Value = cell.Offset(0, 2).Value Then
'ThisWorkbook.Sheets(1).Rows(cell.Row).Cop Destination:=ThisWorkbook.Sheets(4).Range("A" & currentRow)
'currentRow = currentRow + 1
GoTo NextIteration
End If
Next cell2
ThisWorkbook.Sheets(1).Rows(cell.Row).Copy Destination:=ThisWorkbook.Sheets(4).Range("A" & currentRow)
currentRow = currentRow + 1
NextIteration:
Next cell
Do you see why that works?
Final answer
Blogged about it here: http://htddi.wordpress.com/2014/05/16/anatomy-of-a-stackoverflow-discussion/
and here: http://htddi.wordpress.com/2014/05/16/anatomy-of-a-stackoverflow-discussion-part-ii/