Здравствуйте! Подскажите, как установить макросом автофильтр по 31-ю строку? Фамилии добавляются на листе "БДМ №1", а сортировка на листе "Общий табель". Фильтр работает, но на весь столбец.
Здравствуйте! Подскажите, как установить макросом автофильтр по 31-ю строку? Фамилии добавляются на листе "БДМ №1", а сортировка на листе "Общий табель". Фильтр работает, но на весь столбец.bumnik
Как я уже в Вашей прошлой теме писал, автофильтр в Excel иногда излишне умен и сам ставит диапазон. Поэтому костыль такой - вставляем пустую 32-ю строку, ставим автофильтр и удаляем 32 строку. Кусок Вашего кода переписываем так [vba]
Код
r_ = 31 With Sheets("Общий табель") Application.EnableEvents = 0 .Range("A" & r_ + 1).EntireRow.Insert If .Range("C5:C" & r_).AutoFilter Then .Range("C5:C" & r_).AutoFilter End If .Range("C6:C" & r_).AutoFilter Field:=1, Criteria1:="<>" , VisibleDropDown:=False .Range("A" & r_ + 1).EntireRow.Delete Application.EnableEvents = 1 End With
[/vba]
Как я уже в Вашей прошлой теме писал, автофильтр в Excel иногда излишне умен и сам ставит диапазон. Поэтому костыль такой - вставляем пустую 32-ю строку, ставим автофильтр и удаляем 32 строку. Кусок Вашего кода переписываем так [vba]
Код
r_ = 31 With Sheets("Общий табель") Application.EnableEvents = 0 .Range("A" & r_ + 1).EntireRow.Insert If .Range("C5:C" & r_).AutoFilter Then .Range("C5:C" & r_).AutoFilter End If .Range("C6:C" & r_).AutoFilter Field:=1, Criteria1:="<>" , VisibleDropDown:=False .Range("A" & r_ + 1).EntireRow.Delete Application.EnableEvents = 1 End With