بعد اذن اخي ابو حنين 
 
	هذا الكود(ربما اسره قليلاُ) حيث انه يخرج من الـ 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