2015-09-02 154 views
1

我试图将代码添加到宏Excel宏如果特定列包含几个字符串中的一个自动筛选依据。下面是我做了2串(R为范围):多个字符串自动筛选

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

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

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

而不是显示一些额外的行,这神秘地导致根本没有行。

因此,在寻找真相,我删除了所有三个串中的星号,得到了什么我的预期:行,其中的价值正是这些字符串之一。 不幸的是,我真的需要这些星号。

我在这里错过了什么吗?

回答

1

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

+0

谢谢。 Bummer,但现在我知道我必须与之合作。 – RonR

0

据我所知,你不能在同一列由两个以上的标准通配符过滤。我想你需要做的就是将过滤需求进入由公式沿线的人口附加列:

假设ProductTypeCol是A列

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

然后在此列的筛选在Trues(如果需要的话,您可以扩展到广大的搜索项)