【发布时间】:2015-05-11 02:05:02
【问题描述】:
我在 Excel VBA 中遇到自动筛选问题。我需要过滤包含文本的单元格列以显示“IT”的实例,但不显示包含字母“it”的单词 - 即我想过滤包含“Commercial, IT”但不包含“Commercial, Committee”的单元格。
我根据这个问题使用了一个数组:Use autofilter on more than 2 criteria
当我使用此代码时它可以工作:
Worksheets("AssembledData").Range("A1").AutoFilter _
field:=NewTeamCol, _
Criteria1:=Array("IT", "IT, *"), _
Operator:=xlFilterValues
但是,如果我在数组中添加第三个选项以捕获 IT 位于字符串 Criteria1:=Array("IT", "IT, *", "* IT"), _ 末尾的单元格,我得到的结果与刚刚获得 Criteria1:=Array("IT"), _ 时的结果相同
我做错了什么?新来的,VBA 的新手 - 尽我所能搜索而不是询问这个项目,但现在难住了!提前致谢。
【问题讨论】:
-
您不能在带有
xlFilterValues的大量过滤条件中使用通配符。如果这样做,则仅考虑数组中的前两个条件;就像您使用Criteria1和Criteria2和Operator:=xlAnd一样。唯一的选择是遍历单元格并将您自己的标准数组构建到一个数组中,然后将其提交到.AutoFilter命令中。 -
感谢@Jeeped - 这与我所看到的相符。猜猜我必须正确地构建一个数组(或者用行可见性来阻止它......)。