you might also try
Sub del_dup_cols()

Dim r As Long, c As Long, i As Long, j As Long
Dim d As Object, a, x(), u

r = Cells.Find("*", , , , xlByRows, xlPrevious).Row
c = Cells.Find("*", , , , xlByColumns, xlPrevious).Column
Set d = CreateObject("scripting.dictionary")
d.comparemode = 1
ReDim x(1 To c)
a = Cells(1).Resize(r, c)

For j = 1 To c
    u = vbNullString
    For i = 1 To r
        u = u & Chr(30) & a(i, j)
    Next i
    If Not d.exists(u) Then d(u) = 1 Else x(j) = 1
Next j

If Application.CountA(x) > 0 Then
    With Cells(r + 1, 1).Resize(, c)
        .Value = x
        .SpecialCells(xlConstants).EntireColumn.Delete
    End With
End If

End Sub