2015-06-09 2 views
0

Я пытаюсь отфильтровать для 5 значений в столбце O. Эти значения могут быть или не существовать. То, что я пытался являются следующие два примера:Autofilter Subscript out of range

ActiveSheet.ListObjects("Sheet1").Range.AutoFilter Field:=15, Criteria1:= _ 
      Array("CONS", "MISC", "PFG", "PRT", "TOTE"), _ 
      Operator:=xlFilterValues 
      ActiveSheet.Range("$O$8:$O").SpecialCells(xlCellTypeVisible).EntireRow.DELETE 
Range("O8").AutoFilter Field:=15 

и

ActiveSheet.Range("$O$8:$O").AutoFilter Field:=15, Criteria1:="=CONS", _ 
      Operator:=xlOr, Criteria2:="=MISC", _ 
      Operator:=xlOr, Criteria3:="=PFG", _ 
      Operator:=xlOr, Criteria4:="=PRT", _ 
      Operator:=xlOr, Criteria5:="=TOTE" 
     ActiveSheet.Range("$O$8:$O").SpecialCells(xlCellTypeVisible).EntireRow.DELETE 
Range("O8").AutoFilter Field:=15 

Первый блок кода дает мне ошибку: Подстрочный вне диапазона. Вторая ошибка: Определенная пользователем или объектная ошибка.

Кто-нибудь видит, что в этом плохого?

спасибо.

+0

Смотрите мой ответ ниже ответ на оба вопроса :) –

ответ

0

Попробуйте

ActiveSheet.Range("$O$8:$O$10000").AutoFilter Field:=1, Criteria1:=Array("MISC" _ 
     , "MISC", "PFG", "PRT", "TOTE", "="), Operator:=xlFilterValues 
    ActiveSheet.Range("$O$8:$O10000").SpecialCells(xlCellTypeVisible).EntireRow.Delete 
    Range("O8").AutoFilter Field:=1 
+0

Спасибо! Но я по-прежнему получаю «Определяемую приложением или объектно-зависимую ошибку» при попытке использовать этот код: ActiveSheet.Range («$ O $ 8: $ O $ 1000»). Поле AutoFilter: = 15, Criteria1: = "= CONS", _ Оператор: = xlOr, Критерии2: = "= MISC", _ Оператор: = xlOr, Критерии3: = "= PFG", _ Оператор: = xlOr, Критерии4: = "= PRT", _ Оператор: = xlOr, Criteria5: = "= TOTE" – Tawm

+0

Хорошо, я вижу ваш отредактированный ответ. В чем состоит необходимость. Поле: = 1 вместо 15? Это только потому, что начало моего диапазона - это уже? Если бы это был A: O, то нужно было бы: = 15? – Tawm