我正在尝试根据特定列是否包含多个字符串之一,将代码添加到宏以进行自动过滤。这是我为2个字符串做的(R是范围):
R.AutoFilter Field:=ProductTypeCol, _
Criteria1:=Array("*maintenance*", "*services*"), _
Operator:=xlFilterValues
这完全符合我的预期,并为每个字符串显示一些行。然后我添加了第三个字符串并重新执行了宏:
R.AutoFilter Field:=ProductTypeCol, _
Criteria1:=Array("*maintenance*", "*services*", "*training*"), _
Operator:=xlFilterValues
而不是显示一些额外的行,这神秘地导致根本没有行。
因此,为了寻找真相,我从所有三个字符串中删除了星号,并得到了我所期望的那些:值恰好是这些字符串之一的行。 不幸的是,我真的需要那些星号。
我在这里错过了什么吗?
答案 0 :(得分:1)
您不能使用通配符过滤两个以上的条件。如果你想这样做,你将不得不添加一个临时帮助列,或者使用循环过滤器或其他解决方法。
答案 1 :(得分:0)
据我所知,您不能使用通配符按两个以上标准过滤同一列。我认为您需要做的是将过滤要求移动到由公式填充的附加列中:
假设ProductTypeCol
是A栏。
=SUM(COUNTIF($A2,{"=*maintenance*","=*services*","=*training*"}))>0
然后在此列上筛选Trues(如果需要,可以将其扩展为更多搜索词)