Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-如何对同一字段自动筛选两个以上的条件?_Vba_Excel_Autofilter - Fatal编程技术网

VBA-如何对同一字段自动筛选两个以上的条件?

VBA-如何对同一字段自动筛选两个以上的条件?,vba,excel,autofilter,Vba,Excel,Autofilter,我整天都在寻找答案,似乎找不到解决问题的办法。我发现与我的问题最接近的是这里的链接: 这是我的工作表: 然而,这并不能解决我的问题。我一直在用那个问题的答案作为搜索的基础。我没有收到任何错误,但是当我运行代码时,它会过滤掉第6-35行(整个过程!) 我也尝试过同样的代码,但没有“运算符”部分,它实际上使用数组中的最后一个条件(1445)过滤两行(第6行和第20行)。但为什么其他人不呢?我迷路了,我已经找了好几个小时了。我觉得这应该是直截了当的。解决办法是用引号来表示数字。 代码的另一个问题是

我整天都在寻找答案,似乎找不到解决问题的办法。我发现与我的问题最接近的是这里的链接:

这是我的工作表:

然而,这并不能解决我的问题。我一直在用那个问题的答案作为搜索的基础。我没有收到任何错误,但是当我运行代码时,它会过滤掉第6-35行(整个过程!)


我也尝试过同样的代码,但没有“运算符”部分,它实际上使用数组中的最后一个条件(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