Excel过滤器在应用了另一个过滤器后为前n个值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Excel过滤器在应用了另一个过滤器后为前n个值相关的知识,希望对你有一定的参考价值。

我一直在努力理解为什么excel会以这种方式行事,但似乎找不到简单的解释:为什么在应用了另一个过滤器之后,我不能对前n个项目进行过滤?我正在尝试使用以下公式通过VBA进行此操作,但它仅过滤单个值。手动过滤也会产生相同的结果:

.AutoFilter Field:=10, Criteria1:=">=" & Date - 3
.AutoFilter Field:=35, Criteria1:="10", Operator:=xlTop10Items

为什么Excel会以这种方式表现,解决方案是什么?

答案
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("A2:A6") _
    , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add2 Key:=Range("B2:B6") _
    , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Sheet1").Sort
    .SetRange Range("A1:B6")
    .Header = xlYes
    .MatchCase = False
    .Orientation = xlTopToBottom
    .SortMethod = xlPinYin
    .Apply
End With
另一答案

常规过滤器将检查整个表,而不是已过滤的行。

以上是关于Excel过滤器在应用了另一个过滤器后为前n个值的主要内容,如果未能解决你的问题,请参考以下文章

QTreeView - 排序和过滤模型

如果使用 useEffect 更改了另一个过滤器,则重置为第一页

根据同一文本框中的 2 个值过滤表单

在 Excel VBA 中,如何保存/恢复用户定义的过滤器?

从特定操作中排除过滤器

在 Excel Pivot 中应用多个值筛选器