用于自动筛选排序 SortFields 的 VBA 不使用其他列排序进行排序
Posted
技术标签:
【中文标题】用于自动筛选排序 SortFields 的 VBA 不使用其他列排序进行排序【英文标题】:VBA for AutoFilter Sort SortFields not sorting with additional column sorts 【发布时间】:2022-01-18 05:42:57 【问题描述】:我有一个从顶部向下几行的数据数组。我有工作的 VBA 代码,它将数据与 Range 绑定并将其存储在变量中。然后调整大小以包含标题行,清除过滤器,然后根据所选范围将其添加回来。
那时我想每 3 行对数据进行排序
我使用 Cells.Find 查找我想要的列标题,然后将行和列排序为变量。我将 1 添加到 Column 变量并将其存储为下一个排序的变量...
我已经测试了每个排序命令,它们独立工作,但我无法让它们以组合顺序工作 Date:,然后是 Priority:然后是 Status:。
提前感谢您的帮助。
Cells.Find(What:="Due:", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Dim DueRowNumber As Long
Dim DueColumnNumber As Long
DueRowNumber = ActiveCell.Row
DueColumnNumber = ActiveCell.Column
Dim PriorityRowNumber As Long
Dim PriorityColumnNumber As Long
PriorityRowNumber = ActiveCell.Row
PriorityColumnNumber = ActiveCell.Column + 1
Dim StatusRowNumber As Long
Dim StatusColumnNumber As Long
StatusRowNumber = ActiveCell.Row
StatusColumnNumber = ActiveCell.Column + 2
ActiveWorkbook.Worksheets("Action Items").AutoFilter.Sort.SortFields.Add Key _
:=Cells(DueRowNumber, DueColumnNumber), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
:=xlSortTextAsNumbers
ActiveWorkbook.Worksheets("Action Items").AutoFilter.Sort.SortFields.Add Key _
:=Cells(PriorityRowNumber, PriorityColumnNumber), SortOn:=xlSortOnValues, Order:=xlAscending, _
CustomOrder:="High,High-Med,Med,Med-Low,Low", _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Action Items").AutoFilter.Sort.SortFields.Add Key _
:=Cells(StatusRowNumber, StatusColumnNumber), SortOn:=xlSortOnValues, Order:=xlDescending, _
CustomOrder:="Late,In Work,Not Started,On Hold,Completed", _
DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Action Items").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
【问题讨论】:
【参考方案1】:在对其他数据进行进一步调查后(添加了几行具有独特的截止日期、优先级和状态设置...上面的代码似乎可以工作。我希望它可以帮助遇到类似问题的人。
【讨论】:
以上是关于用于自动筛选排序 SortFields 的 VBA 不使用其他列排序进行排序的主要内容,如果未能解决你的问题,请参考以下文章