excel宏循环过滤选项

时间:2017-03-21 18:20:55

标签: excel vba excel-vba filter compare

在excel文件A中,Col A我有一个零件清单的族类型。在Col B thru K 0.5V, 2V, 5V,10V,12V, etc我有一些零件数据维度和类似的东西。我正在寻找一种方法让一个宏按照Col A中的值运行一个过滤器,然后运行我已经拥有的其他代码,清除过滤器选择,然后转到过滤器中的选择选项。

所以如果我的过滤器选项是

.1
.5
.03
.9
2
8

它会过滤.1,运行代码,清除过滤器,按.5过滤,运行代码,清除过滤器,过滤.03等等。我完全迷失了如何循环通过筛选器列表。任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

  

创建一个值数组,然后遍历该数组.¹

Sub sequentialAutoFilter()
    Dim a As Long, arrs As Variant

    arrs = Array(0.1, 0.5, 0.03, 0.9, 2, 8)

    With Worksheets("Sheet99")
        If .AutoFilterMode Then .AutoFilterMode = False
        With .Cells(1, 1).CurrentRegion
            For a = LBound(arrs) To UBound(arrs)
                .AutoFilter field:=1, Criteria1:=arrs(a)
                With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0)
                    If CBool(Application.Subtotal(103, .Cells)) Then
                        'there are filtered cells visible, run code here
                        'note: .Cells does not include the header row here
                    End If
                End With
            Next a
        End With
        If .AutoFilterMode Then .AutoFilterMode = False
    End With

End Sub

¹引自Scott Craner的评论。