2014-11-04 2 views
2

Может ли кто-нибудь объяснить, почему первый оператор «AutoFilter» в приведенном ниже коде постоянно дает «AutoFilter Method of Range Class Failed» в Excel 2010?Установите AutoFilter в Excel с VBA

ActiveSheet.AutoFilterMode = False 
shtUSR.Range("A1").Select 
ActiveSheet.Range("A1").AutoFilter Field:=1, VisibleDropDown:=True 
ActiveSheet.Range("B1").AutoFilter Field:=2, VisibleDropDown:=True 
ActiveSheet.AutoFilterMode = True 
+0

Какая линия является ошибкой? Это строка 'ActiveSheet.AutofilterMode = False'? – JNevill

+0

Нет. Это первый оператор «Автофильтр», строка 3. – user2021539

+0

Здесь вы используете 'activesheet', что означает, что какой бы лист, присвоенный' shtUSR', должен был быть с автофильтром. Включен ли автоответчик 'shtUSR', и существует ли диапазон AutoFiltered на этом листе на' 'A1?'? – JNevill

ответ

2

Я думаю, что нашел это!

По-видимому, AutoFilter терпит неудачу, если он не может найти данные в диапазоне. Попробуйте добавить значения в ячейки A1 и B1 (а также удалить строку ActiveSheet.AutoFilterMode = True). Для «общего использования» тогда, чтобы быть в безопасности, вам нужно будет выполнить поиск или аналогично тестированию данных в пределах диапазона.

+1 для хорошего Q хотя.

+0

Да! Вот так! Спасибо! Это сводило меня с ума весь день! – user2021539

Смежные вопросы