我有一个用于对表内的字段进行排序和隐藏的宏,但是使用该宏的用户并不都拥有相同的字段,甚至也不在同一个位置:
用户 1“订单”是 B 列,但用户 2“订单”是 D 列。当我制作宏时,我按照字段的设置方式制作它,希望通过使用表格,宏可以根据名称进行排序和隐藏。(我错了)我只需要显示“DriverNo”和“POD Name”的 2 个字段。我还需要按“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