Sub Fusion()
Dim t, i&, j%, P As Range
t = Timer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
With ActiveSheet.UsedRange
For i = 1 To .Rows.Count
For j = .Columns.Count To 2 Step -1
If .Cells(i, j) <> "" And .Cells(i, j) = .Cells(i, j - 1) Then
Set P = Union(IIf(P Is Nothing, .Cells(i, j), P), .Cells(i, j - 1))
Else
If Not P Is Nothing Then P.Merge: Set P = Nothing
End If
Next j, i
End With
MsgBox Timer - t
End Sub