为什么AutoFilter在指定范围之前应用了三行

时间:2013-03-26 20:03:32

标签: excel vba

以下代码将autofilter应用于工作表“'Grand Totals'!B1”中设置的日期条件的多个工作表,适用于工作表范围A6,格式为日期。第1-5行包含标题和公式。但是,行3-5与从A6开始的过滤行一起消失。谁能明白为什么?据我所知,A6排上方的所有内容都应保持可见。再次感谢您的帮助。

Sub ApplyFilterDate()

    Dim Ws As Worksheet
    Application.ScreenUpdating = False 'Turn off ScreenUpdating to speed filtering
        For Each Ws In ActiveWorkbook.Worksheets
            If Ws.Name <> "Grand Totals" Then
                Ws.Activate
                Ws.AutoFilterMode = False 'Remove any existing filters
                Ws.Range("A6").AutoFilter Field:=1, Criteria1:=Range("'Grand Totals'!B1").Text
                Range("G2").Activate
                Center_it 'Puts next data entry cell in approximate center of screen
            End If
        Next
    Sheet1.Activate
    Range("B2").ClearContents
    Range("B1").Interior.ColorIndex = 3 'Set color of cell showing filter date
    Range("B1").Activate
    Application.ScreenUpdating = True 'Turn on ScreenUpdating

End Sub

2 个答案:

答案 0 :(得分:1)

您要求自动过滤器仅在单元格A6上运行。这没有意义,因此Excel扩展了选择以包括周围的单元格。您需要指定应用自动过滤器的范围。

答案 1 :(得分:1)

使用以下语法来避免您的问题:

Ws.Range("A6:e6").AutoFilter '... and so on with exact range address