2017-08-07 142 views
0

我想使用数据过滤4列。我有.AutoFilter功能的问题。代码:VBA中的自动过滤

ActiveSheet.Cells.AutoFilter Field:=16, Criteria1:="Crit_1" 

工作正常列P.但是,当其他语句用于像.Range(“P:R”),而不是.Cells它工作在很多不同的方式。我做了一些尝试,我认为这是行中空格的问题,函数没有正确触发。结果所有行都被隐藏起来。任何人都可以给我一个解释这个函数是多么的可行吗?我想过滤3列,并检查是否在第4个是适当的价值。

问候

+0

'AutoFilter'对于使用多个标准来说有点棘手。不建议使用两个以上的标准。也许设置一个**控制**列('COUNTIFS'或'SUMPRODUCT'可能可以实现您的目标)并从那里过滤。您总是可以隐藏该列以获得更好的演示。 – ian0411

回答

0

尝试以下:

ActiveSheet.Cells.AutoFilter Field:=1, Criteria1:="Crit_1" 'For Row P 
ActiveSheet.Cells.AutoFilter Field:=2, Criteria1:="Crit_1" ' For Row Q 
ActiveSheet.Cells.AutoFilter Field:=3, Criteria1:="Crit_1" ' For Row R 

对于现场部分,你需要给列数的值,所以你的情况P = 1:Q = 2; R = 3