【发布时间】:2016-11-21 17:16:36
【问题描述】:
希望这里的这个新手可以在使用宏排序方面得到一些帮助。
我有一张 D:R 表格要排序。
首先,整个表需要按照Q列升序排序。
然后同一张表按照P列升序排序。
最后,整个表格需要将每列 D 的黄色突出显示的行置于顶部。
我当前的公式是使用内置记录器记录的,它不起作用。
有人可以提供任何建议吗?非常感谢!
'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
【问题讨论】: