بعد اذن اخي ابو حنين
هذا الكود(ربما اسره قليلاُ) حيث انه يخرج من الـ Loop فور حصوله على نتيجة
Sub transfer()
Dim i As Long, tr As Boolean, x, y As Integer
Dim lra, lrb, lr As Long
lrb = Cells(Rows.Count, 2).End(3).Row
lra = Cells(Rows.Count, 1).End(3).Row
lr = Application.Max(lrb, lra)
Range("c2:d" & lr).ClearContents
i = 2
Do Until Range("a" & i) = ""
tr = False
x = Application.CountIf(Range("a2:a" & i), Range("a" & i))
y = Application.CountIf(Range("b2:b" & lrb), Range("a" & i))
If x = 1 And y = 0 Then
tr = True: GoTo 1
End If
1:
If tr = True Then
Cells(m + 2, 3) = Range("a" & i)
m = m + 1
End If
i = i + 1
Loop
'======================================
m = 0
i = 2
Do Until Range("b" & i) = ""
tr = False
x = Application.CountIf(Range("b2:b" & i), Range("b" & i))
y = Application.CountIf(Range("a2:a" & lra), Range("b" & i))
If x = 1 And y = 0 Then
tr = True: GoTo 2
End If
2:
If tr = True Then
Cells(m + 2, 4) = Range("b" & i)
m = m + 1
End If
i = i + 1
Loop
End Sub