Esse VBA funcionará, basta ajustar os intervalos para as células para que ele não seja executado indefinidamente. Também ajuste o loop for de i
para refletir quantos campos você tem.
Este VBA assume que os valores estão na mesma ordem em ambas as planilhas e não substituem os espaços em branco, mas também não compara os valores .
Sub comparesheets()
Application.ScreenUpdating = False
Dim c As Range
Dim strFind As String
Dim rFound As Range
Dim i As Integer
For Each c In Sheets("sheet1").Range("A:A")
strFind = c.Value
With Sheets("Sheet2").Range("A:A")
Set rFound = .Find(What:=strFind, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not rFound Is Nothing Then
For i = 1 To 4
If rFound.Offset(, i) <> "" Then
c.Offset(, i) = rFound.Offset(, i)
End If
Next i
End If
End With
Next c
Application.ScreenUpdating = True
End Sub