Humour me and see if this code works any better:

Sub Hide_Columns()
Dim col As Range, rFound As Range

For Each col In ActiveSheet.UsedRange.Columns
    Set rFound = col.Find(What:="?*",SearchDirection:=xlPrevious)
    If Not rFound Is Nothing Then
       If rFound.Row = 1 Then col.Hidden = True
    Else
       col.Hidden = True
    End If
    Set rFound = Nothing
Next

End Sub