在Excel VBA中的自动filter

我有一个很大的电子表格数据,我试图用自动filter进行过滤。 我有两个autofilter语句,当我同时运行它们时,不返回任何数据(我知道这是一个错误)。 但是,当我分别运行它们时,它们工作正常。 我不确定是什么导致这个问题。 任何帮助将不胜感激。

每个“rng”是被过滤的特定列。

rng3.AutoFilter 1, Criteria1:=Array( _ "CMS Part D (CY " & Year(Date) & ")", "Commercial", "State Medicaid"), Operator:= _ xlFilterValues rng4.AutoFilter Field:=1, Criteria1:="No" 

我会build议做一个variables“rng”,这是你试图过滤的整个表格。 我将假设这个例子中“rng3”是A列,“rng4”是B列。

 Sub Filter() Dim rng as Range Set rng = Range("A:B") rng.Autofilter 1, Criteria1:=Array( _ "CMS Part D (CY " & Year(Date) & ")", "Commercial", "State Medicaid"), Operator:= _ xlFilterValues rng.Autofilter Field:=2, Criteria1:="No" End Sub 

看起来问题是因为你的Field属性对于每个语句都是1,即使你的范围是不同的列。 例如,如果rng3是列A,那么字段属性应该是1.如果rng4是列B,那么字段属性应该是2.像这样的….

  Dim rng3 As Range Dim rng4 As Range Set rng3 = Range("A:A") Set rng4 = Range("B:B") rng3.AutoFilter Field:=1, Criteria1:=Array("CMS Part D (CY " & Year(Date) & ")", _ "Commercial", "State Medicaid"), _ Operator:=xlFilterValues rng4.AutoFilter Field:=2, Criteria1:="No"