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
Bookmarks