ربما هذا الكود اسرع قليلاُ (للبيانات الكثيرة )
حيث يقوم يتحديد الصفوف المطلوبة ثم ينقلها دفعة واحدة الى المكان المقصود
Sub Tarhil_Complete_Data1()
Dim Ws1, Ws2 As Worksheet
Dim Lr1, S, i As Integer
Dim RG1, Temp_Range As Range
Set Ws1 = Sheets("sheet1"): Set Ws2 = Sheets("sheet2")
Lr1 = Application.Max(Ws1.Range("a:a")) + 1
Set RG1 = Ws1.Range("A1:F" & Lr1)
For i = 2 To Lr1
S = Application.CountA(RG1.Cells(i, 1).Resize(1, 6))
If S = 6 Then
If Temp_Range Is Nothing Then
Set Temp_Range = RG1.Cells(i, 1).Resize(1, 6)
Else
Set Temp_Range = Union(Temp_Range, _
RG1.Cells(i, 1).Resize(1, 6))
End If
End If
Next
If Temp_Range Is Nothing Then Exit Sub
Temp_Range.Copy Ws2.Range("a2")
Set Temp_Range = Nothing
End Sub