A lot of it will depend on how large the sheets are, whether they are sorted, etc.
A general solution that might fit your needs it to build up an index using a Collection or a Scripting.Dictionary, mapping the key value to the row number or offset. (You may need to add a reference to the Microsoft Scripting Something) Then just iterate over the keys() in one list and see if they exist in the other list
enum DATA_COLUMNS
COL_ID
....
end enum
' Load Source
Dim dictSource As Scripting.Dictionary: Set dictSource = CreateObject("Scripting.Dictionary")
Dim rngSource As Range: Set rngSource = Range("source1")
Dim i as Long: i = 1
Do While Not IsEmpty(rngSource.Offset(i, COL_ID))
unique_id = Trim(rngSource.Offset(i, COL_ID).Value)
If Not dictSource.exists(unique_id) Then
dictSource.Add unique_id, i
Else
dictSource(unique_id) = i ' assume later version are better
End If
i = i + 1
Loop
' ---- and later
For Each unique_id In dictSource.keys
If Not dictTarget.exists(unique_id) Then
' ---- do something
Else
' ---- do something else
End If
Loop