繁体   English   中英

用于多字符串自动过滤的Excel宏

[英]Excel macro for multiple string autofilter

我正在尝试将代码添加到宏中,以便根据特定列是否包含多个字符串之一来自动过滤。 这是我对2个字符串所做的操作(R是范围):

R.AutoFilter Field:=ProductTypeCol, _
    Criteria1:=Array("*maintenance*", "*services*"), _
    Operator:=xlFilterValues

这完全符合我的预期,并为每个字符串显示了一些行。 然后,我添加了第三个字符串并重新执行了宏:

R.AutoFilter Field:=ProductTypeCol, _
    Criteria1:=Array("*maintenance*", "*services*", "*training*"), _
    Operator:=xlFilterValues

而不是显示其他行,这神秘地导致根本没有行。

因此,为了寻找真相,我从所有三个字符串中删除了星号,并得到了我所期望的:值恰好是这些字符串之一的行。 不幸的是,我真的需要那些星号。

我在这里想念什么吗?

您不能使用通配符过滤两个以上的条件。 如果要这样做,则必须添加一个临时帮助器列,或使用循环进行过滤,或采用其他解决方法。

据我所知,您不能使用通配符在同一列上通过两个以上的条件进行过滤。 我认为您需要做的是将过滤要求移到由公式填充的附加列中,其内容如下:

假设ProductTypeCol在A列中。

=SUM(COUNTIF($A2,{"=*maintenance*","=*services*","=*training*"}))>0

然后在此列上过滤True(您可以根据需要将其扩展到更多搜索词)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM