gpt4 book ai didi

vba - Excel : filter with Multiple Criteria : AutoFilter or AdvancedFilter

转载 作者:行者123 更新时间:2023-12-02 19:21:19 27 4
gpt4 key购买 nike

我正在尝试创建一个过滤器来执行以下操作

以“4”开头或包含“2TWH”或包含“2TER”

我相信结果会是这样的

ActiveSheet.Range("$A$5:$H$10").AutoFilter Field:=2, Criteria1:="=4*", _
Operator:=xlOr, Criteria2:="=*2TWH*"

但我还需要以某种方式为 ="=2TER"设置一个标准 3

我做了一些谷歌搜索,发现您可以将值存储到数组中,然后调用数组值,但我无法以可用的方式将它们放入数组中。

有人可以提供一些帮助吗?

最佳答案

这应该可以解决问题:

ActiveSheet.Range("$A$5:$H$10").AutoFilter Field:=2, Criteria1:="=4*", _
Operator:=xlOr, Criteria2:=Array("*2TWH*","*2TER*")

这不会引发任何错误,但是......
只需要 2 个条件,因为有通配符 (*)。
这是数组中的最后一个条件(此处为 *2TER*)

<小时/>

理想情况下,这会很好,因为它适用于常量
但因为您使用通配符 (*),所以它只支持 2 个条件...:/

ActiveSheet.Range("$A$1:$H$10").AutoFilter Field:=2, Criteria1:=Array("*2TWH*", "*2TER*", "4*"), _
Operator:=xlFilterValues
<小时/><小时/>

所以你必须使用AdvancedFilter:

With ActiveSheet
'Const xlFilterInPlace = 1
.Range("$A$5:$H$10").AdvancedFilter _
Action:=xlFilterInPlace, _
CriteriaRange:=WsFilterSettings.Range("A1:A4")
End With 'ActiveSheet

AdvancedFilter 采用范围作为条件输入CriteriaRange,因此您必须放在一张纸上>:

  • 要应用于过滤器的列标题
  • 相应标题下方的条件(如果您有多个列)

该范围的每个都通过AND链接
该范围的每个ROW都通过OR
链接因此,请仔细构建您的 table !

在上面的示例代码中,我使用了:
(假设您的列标题要过滤的列):

A1 | Column To Filter On
A2 | 4*
A3 | *2TWH*
A4 | *2TER*

关于vba - Excel : filter with Multiple Criteria : AutoFilter or AdvancedFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42803528/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com