Excel VBA中不同列上没有连续AutoFilter语句的数据

4dbbbstv  于 2023-01-06  发布在  其他
关注(0)|答案(2)|浏览(145)

我有一个大型的电子表格数据,我试图使用自动筛选进行筛选。我有两个自动筛选语句,当我同时运行它们时,没有返回任何数据(我知道这是一个错误)。但是,当我分别运行它们时,它们工作正常。我不确定是什么导致了这个问题。任何帮助都将不胜感激。
每个“rng”都是要过滤的特定列。

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

    rng4.AutoFilter Field:=1, Criteria1:="No"
bis0qfac

bis0qfac1#

我建议创建一个变量“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
3okqufwl

3okqufwl2#

问题似乎是因为即使范围是不同的列,每个语句的Field属性也是1。例如,如果rng3是A列,则field属性应该是1。如果rng4是B列,则field属性应该是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"

相关问题