Isso deve funcionar:
Sub mergeproducts()
Dim a As Application
Set a = Application
Dim wks As Worksheet
Set wks = ActiveSheet
wks.Application.ScreenUpdating = False
max_col = 6
Last = Cells(Rows.Count, "A").End(xlUp).Row
For i = Last To 2 Step -1
row_b = Join(a.Transpose(a.Transpose(wks.Range(Cells(i, 1), Cells(i, max_col)))), Chr(0))
For j = i - 1 To 1 Step -1
row_a = Join(a.Transpose(a.Transpose(wks.Range(Cells(j, 1), Cells(j, max_col)))), Chr(0))
If row_a = row_b Then
k = max_col + 1
full = True
While full
If wks.Cells(i, k) = "" Then
wks.Cells(i, k) = wks.Cells(j, max_col + 1)
full = False
Else
k = k + 1
End If
Wend
wks.Rows(j).Delete
j = 1
End If
Next j
Next i
wks.Application.ScreenUpdating = True
Final = MsgBox("Finished", vbInformation)
End Sub