自动过滤器在VBA中具有标准范围的单元格 [英] Autofilter in VBA with criteria as a range of cells

查看:187
本文介绍了自动过滤器在VBA中具有标准范围的单元格的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  ActiveSheet.Range($ A $ 1:$ I $ 954092)。AutoFilter Field:= 1,Criteria1:= ???? _ 
运算符:= xlFilterValues

我想使用动态范围的单元格,如



  Range(A1,Range(A1)。End(xlDown))

你可以建议如何指定吗?



我已经尝试将以下内容传递给Criteria1 :

 范围(###)。值
数组(范围(###))

等。



Ex。

  Col1 Col2 Col3 Col4 
------------------------ ----
A 1 3 Y
B 3 3 N
A 2 2 N
C 6 1 Y
B 9 3 Y

我想过滤出值为 A & C in Col1

解决方案

由于@xificurC提到,高级过滤器会诀窍!我可以使用以下代码一次过滤多个值,只需要引用一个范围

 范围(A1: A6)。AdvancedFilter Action:= xlFilterInPlace,
CriteriaRange:= Range(A10:A12),唯一:= False


I want to use autofilter in vba to filter using a dynamic range of cell values.

ActiveSheet.Range("$A$1:$I$954092").AutoFilter Field:=1, Criteria1:=???? _
Operator:=xlFilterValues

I want to use a dynamic range of cells like

Range("A1",Range("A1").End(xlDown))

Can you suggest how to specify this?

I have tried passing the following to Criteria1:

Range(###).Value
Array(Range(###))

etc.

Ex.

Col1    Col2    Col3    Col4
----------------------------
 A        1       3       Y
 B        3       3       N
 A        2       2       N
 C        6       1       Y
 B        9       3       Y

I want to filter out the rows with values A & C in Col1.

解决方案

As @xificurC mentioned, Advanced filter does the trick! I was able to use the following code to filter multiple values at once using just a reference to a range

Range("A1:A6").AdvancedFilter Action:=xlFilterInPlace, 
    CriteriaRange:=Range("A10:A12"), Unique:=False

这篇关于自动过滤器在VBA中具有标准范围的单元格的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆