VBA-如何对同一字段自动筛选两个以上的条件?
我整天都在寻找答案,似乎找不到解决问题的办法。我发现与我的问题最接近的是这里的链接: 这是我的工作表: 然而,这并不能解决我的问题。我一直在用那个问题的答案作为搜索的基础。我没有收到任何错误,但是当我运行代码时,它会过滤掉第6-35行(整个过程!)VBA-如何对同一字段自动筛选两个以上的条件?,vba,excel,autofilter,Vba,Excel,Autofilter,我整天都在寻找答案,似乎找不到解决问题的办法。我发现与我的问题最接近的是这里的链接: 这是我的工作表: 然而,这并不能解决我的问题。我一直在用那个问题的答案作为搜索的基础。我没有收到任何错误,但是当我运行代码时,它会过滤掉第6-35行(整个过程!) 我也尝试过同样的代码,但没有“运算符”部分,它实际上使用数组中的最后一个条件(1445)过滤两行(第6行和第20行)。但为什么其他人不呢?我迷路了,我已经找了好几个小时了。我觉得这应该是直截了当的。解决办法是用引号来表示数字。 代码的另一个问题是
我也尝试过同样的代码,但没有“运算符”部分,它实际上使用数组中的最后一个条件(1445)过滤两行(第6行和第20行)。但为什么其他人不呢?我迷路了,我已经找了好几个小时了。我觉得这应该是直截了当的。解决办法是用引号来表示数字。
代码的另一个问题是,您定义了活动工作表上的最后一行,而该工作表可能恰好不是
calc
sheet。在你的推荐信前面加上计算。
嘿,约翰,我想这不是我要找的。尽管如此,我还是测试了它(以防万一),得到了与以前相同的结果。lastrow
的值是多少?lastrow的值是35。@AP1编写了一个解决方案
Dim calc as Worksheet
Dim lastrow as Integer
Set calc = ThisWorkbook.Sheets("Calc")
lastrow = Application.CountA(Range("A6:A" & Rows.Count)) + 5
calc.Range("A5:T" & lastrow).AutoFilter _
Field:=4, _
Criteria1:=Array(3410, 3420, 3440, 3450, 3490, 1445), _
Operator:=xlFilterValues