Как сделать Selection.AutoFilter запускается в строке 3 вместо строки 1

У меня есть такой код:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
    Application.ScreenUpdating = False
    If Target.Value <> "" Then
            Set wbks = Workbooks.Open("\\MyPath\Workbook.xlsx")
        wbks.Sheets("Control").Activate
        ActiveSheet.Range("A1").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=7, Criteria1:=Target.Value '7 is the filter # column
    End If
End Sub

Он работает хорошо, только если заголовки на листе control расположены в строке 1.
Моя проблема в том, что \\MyPath\Workbook.xlsx является файлом только для чтения, а его заголовки начинаются в строке 3.


person phalanx    schedule 28.05.2013    source источник
comment
@phalanx Закройте вопрос, отметив правильный ответ.   -  person Santosh    schedule 29.05.2013


Ответы (2)


Попробуйте добавить этот код перед автофильтром

Rows("3:3").Select

Делаем код:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
    Application.ScreenUpdating = False
    If Target.Value <> "" Then
            Set wbks = Workbooks.Open("\\MyPath\Workbook.xlsx")
        wbks.Sheets("Control").Activate
        ActiveSheet.Range("A1").Select
        Rows("3:3").Select
        Selection.AutoFilter
        Selection.AutoFilter Field:=7, Criteria1:=Target.Value '7 is the filter # column
    End If
End Sub

Надеюсь, это поможет, Бруно

person Newbie    schedule 29.05.2013
comment
Таблицы (Formular) .Select Range (A1: F1) .Select Selection.AutoFilter ... Я пытаюсь использовать этот фильтр, и когда я использую эту команду (в первой строке нет данных, но данные есть в следующих строках ), Есть ошибка, в которой упоминается, что вы не можете применить автоматический фильтр, используя этот диапазон. - person Isu; 15.10.2015

person    schedule
comment
Спасибо, это было очень полезно - person phalanx; 29.05.2013