使用macrossorting表

希望这个新手在这里可以得到一些帮助使用macrossorting请。

我有一个表D:R进行sorting。

首先,整个表格需要按Q列升序排列。

然后根据P列按照升序对同一个表进行sorting。

最后,整个表格需要将每列D中黄色突出显示的行带到顶部。

我现在的公式是使用内置logging器logging的,不起作用。

会有人提供任何build议吗? 提前谢谢了!

'Sorting for easier read 'Check for filter, turn on if none exists If Not ActiveSheet.AutoFilterMode Then ActiveSheet.Range("D1:R1").AutoFilter End If 'Sort in order of column Q ActiveWorkbook.Worksheets(4).AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets(4).AutoFilter.Sort.SortFields.Add Key:=Range( _ "Q1:Q10000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets(4).AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin End With 'Sort in order of column P ActiveWorkbook.Worksheets(4).AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets(4).AutoFilter.Sort.SortFields.Add Key:=Range( _ "P1:P10000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets(4).AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin End With 'Bring highlighted row to the top ActiveWorkbook.Worksheets(4).AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets(4).AutoFilter.Sort.SortFields.Add(Range("D:D" _ ), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(255 _ , 255, 0) With ActiveWorkbook.Worksheets(4).AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin End With 

以下是我以yellow对第52列进行sorting的一个yellow

 Sub SortOnDuplicates() ws.ListObjects("Table1").Range.AutoFilter _ Field:=52, _ Criteria1:=RGB(255, 255, 0), _ Operator:=xlFilterCellColor End Sub 

这里是按升序sorting的一个:

 ws.ListObjects("Table1").Range.AutoFilter Field:=52 With ws.ListObjects("Table1").Sort 'Last Name .SortFields.Clear .SortFields.Add _ Key:=Range("Table1[[#All],[Last Name]]"), _ SortOn:=xlSortOnValues, _ Order:=xlAscending, _ DataOption:=xlSortNormal .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply 'First Name .SortFields.Clear .SortFields.Add _ Key:=Range("Table1[[#All],[First Name]]"), _ SortOn:=xlSortOnValues, _ Order:=xlAscending, _ DataOption:=xlSortNormal .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With