【问题标题】:AutoFilter in excel VBAexcel VBA中的自动筛选
【发布时间】:2015-03-02 16:38:53
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: vba excel range autofilter


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      问题似乎是因为您的 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"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多