Hi
Here goes
Sub aaa()
Dim OutSH As Worksheet
Set OutSH = Sheets("Result1")
'create headings
Sheets("Result1").Range("A1:B1").Value = Sheets("Input2").Range("A1:B1").Value
Sheets("Result1").Range("C1:F1").Value = Sheets("Input1").Range("B1:E1").Value
Sheets("Result2").Range("A1:B1").Value = Sheets("Input2").Range("A1:B1").Value
'process matches
With Sheets("Input1")
For Each ce In .Range("A2", .Range("A2").End(xlDown))
Set findit = Sheets("Input2").Range("A:A").Find(what:=ce)
If Not findit Is Nothing Then
outrow = OutSH.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
OutSH.Cells(outrow, 1).Resize(1, 2).Value = findit.Resize(1, 2).Value
OutSH.Cells(outrow, 3).Resize(1, 4).Value = ce.Offset(0, 1).Resize(1, 4).Value
End If
Next ce
End With
'process non matches
Set OutSH = Sheets("Result2")
With Sheets("Input2")
For Each ce In .Range("A2", .Range("A2").End(xlDown))
Set findit = Sheets("Input1").Range("A:A").Find(what:=ce)
If findit Is Nothing Then
outrow = OutSH.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
OutSH.Cells(outrow, 1).Resize(1, 2).Value = ce.Resize(1, 2).Value
End If
Next ce
End With
End Sub
rylo
Bookmarks