У меня есть макрос, который я использую для сортировки и скрытия полей внутри таблицы, однако пользователи, которые используют это, не все имеют одинаковые поля или даже в одном и том же месте:
Пользовательский "Порядок" - это столбец B, а пользовательский "Порядок" - это столбец D. Когда я создал макрос, я сделал это с помощью настройки моих полей в надежде, что с помощью таблицы этот макрос будет сортироваться и скрываться на основе имен. , (Я был не прав) Мне нужно только 2 поля, в которых отображаются "DriverNo" и "POD Name". Мне также нужно отсортировать по "DriverNo"
Мне не нужно скрывать данные, которые я могу удалить, но я использую столбец AI в качестве поля соответствия для драйверов: =SUMIFS('Order Data'!AI:AI,'Order Data'!C:C,A:A)  
Поэтому, если я удалю поля, тот же столбец будет свободен для расчета моего соответствия. Я знаю, что это много, но я застрял. Я не знаю, как гарантировать, что только эти поля скрыты / удалены. Удаленный будет предпочтительным.
Sub Sort()
'
' Sort Macro
'
    Sheets("Order Data").Select
    Columns("C:C").Select
    ActiveWorkbook.Worksheets("Order Data").AutoFilter.Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Order Data").AutoFilter.Sort.SortFields.Add2 Key:= _
        Range("C1:C403"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
        :=xlSortNormal
    With ActiveWorkbook.Worksheets("Order Data").AutoFilter.Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A:B,K:Z,D:I").Select
    Range("D1").Activate
    Selection.EntireColumn.Hidden = True
End Sub
Sub Sort_Hide()
'
' Sort_Hide Macro
'
Sheets("Order Data").Activate
  Range("A1").Value = 35
Sheets("Order Data").Activate
    Cells.Select
    Cells.EntireColumn.AutoFit
    Range("D5").Select
    ActiveWorkbook.Worksheets("Order Data").ListObjects("Table2").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("Order Data").ListObjects("Table2").Sort.SortFields. _
        Add2 Key:=Range("Table2[[#All],[DriverNo]]"), SortOn:=xlSortOnValues, _
        Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Order Data").ListObjects("Table2").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("D:N,P:AH").Select
    Range("Table2[[#Headers],['[D'] Arrival]]").Activate
    Selection.EntireColumn.Hidden = True
    Range("O9").Select
End Sub
