You can't paste a row into cell E5 for example, because the copied row will be longer than the space you allow to paste into
For Each cell In Sheets("EMAIL DATA").Range("E:E")
If cell.Value = "Rob" Then
Worksheets(2).Range("E5").EntireRow.Value = cell.EntireRow.Value
End If
Next
But that will keep over riding the same row, better something like
i = 1
For Each cell In Sheets("EMAIL DATA").Range("E:E")
If cell.Value = "Rob" Then
Worksheets(2).Cells(i, 1).EntireRow.Value = cell.EntireRow.Value
i = i + 1
End If
Next
Also look into getting the last cell in column E so you're not wasting time iterating all 1 millions rows, like Sheets(1).Range("E" & Cells(Rows.Count, 5).End(xlUp).Row)
EDIT
As per your comment
i = 1
For Each cell In Sheets("EMAIL DATA").Range("E" & Cells(Rows.Count, 5).End(xlUp).Row)
If cell.Value = "Rob" Then
Worksheets(2).Cells(i, 1).Resize(, 5).Value = Cells(cell.Row, 1).Resize(, 5).Value
i = i + 1
End If
Next