writing once:
NB. Union is a worksheet oriented method = RangeSub M_snb() With CreateObject("scripting.dictionary") For j = 1 To 2 sn = Sheets(Choose(j, "reversion", "alpha")).Cells(1).CurrentRegion For jj = 2 To UBound(sn) .Item(sn(jj, 2)) = Application.Index(sn, jj) Next Next Sheets("reversion").Cells(20, 1).Resize(.Count, UBound(sn, 2)) = Application.Index(.items, 0, 0) End With End Sub
If the replacement is correct you don't need any colouring at all.