优化自动过滤器可见下拉循环

时间:2013-03-27 07:13:13

标签: loops excel-vba for-loop with-statement autofilter

我正在尝试优化以下代码;

With Range("A2:IW2")
    For i = 1 To 8
        .AutoFilter Field:=i, VisibleDropDown:=True
    Next i
    For i = 9 To 253
        .AutoFilter Field:=i, VisibleDropDown:=False
    Next i
    For i = 254 To 257
        .AutoFilter Field:=i, VisibleDropDown:=False
    Next i
End With

我到处搜索但找不到任何符合我要求的东西。 如果我能快速运行它,那么整个电子表格就更容易管理了!

感谢您的帮助和这个伟大的网站! 问候, 马特

1 个答案:

答案 0 :(得分:0)

你的意思是这样吗?

Application.ScreenUpdating = False

With Range("A2:IW2")
    For i = 1 To 257
        Select Case i
        Case 1 To 8: .AutoFilter Field:=i, VisibleDropDown:=True
        Case Else: .AutoFilter Field:=i, VisibleDropDown:=False
        End Select
    Next i
End With

Application.ScreenUpdating = True