2016-08-24 3 views
1

Я пытаюсь отфильтровать таблицу (столбцы - «A1: BB») на основе определенного столбца (столбец # 16), который содержит несколько значений. Однако каждая ячейка в столбце может содержать любое конкретное значение в любое время. Я пытаюсь проверить, соответствует ли значение в ячейке определенным значениям.Слишком длинные строки

With Sheets("LifeTimeData") 
.Range("A1:BB" & lastrow).AutoFilter field:=16, **SOME CRITERIA HERE** 
.Range("A1:BB" & lastrow).AutoFilter field:=22, Criteria1:=xlFilterLastMonth 

Set r = Intersect(.AutoFilter.Range, .Range("A:A")) 
Filtred_Rows_Count = Application.WorksheetFunction.Subtotal(103, r) - 1 
Worksheets("LifeTimeData").AutoFilterMode = False 
Sheets("Overview").Range("H" & x) = Filtred_Rows_Count 
End With 

критерии, как показано ниже:

Criteria1:="*" & Trim("Franchise Awarded") & "*", _ 
     Operator:=xlOr, Criteria2:="*" & Trim("Deposit Received") & "*", _ 
     Operator:=xlOr, Criteria3:="*" & Trim("Agent Awarded") & "*", _ 
     Operator:=xlOr, Criteria4:="*" & Trim("Approved Operator") & "*", _ 
     Operator:=xlOr, Criteria5:="*" & Trim("Archive non assigné") & "*", _ 
     Operator:=xlOr, Criteria6:="*" & Trim("Audit") & "*", _ 
     Operator:=xlOr, Criteria7:="*" & Trim("Awarded Franchise - New") & "*", _ 
     Operator:=xlOr, Criteria8:="*" & Trim("Awarded Franchise - Resale") & "*", _ 
     Operator:=xlOr, Criteria9:="*" & Trim("Chocolate Photo Booth") & "*", _ 
     Operator:=xlOr, Criteria10:="*" & Trim("Client") & "*", _ 
     Operator:=xlOr, Criteria11:="*" & Trim("Closed") & "*", _ 
     Operator:=xlOr, Criteria12:="*" & Trim("Closed Deal - Deposit Agreement") & "*", _ 
     Operator:=xlOr, Criteria13:="*" & Trim("Closed Deal - Franchise Agreement") & "*", _ 
     Operator:=xlOr, Criteria14:="*" & Trim("Closed Deal - Restaurant Development Agreement") & "*", _ 
     Operator:=xlOr, Criteria15:="*" & Trim("Completed") & "*", _ 
     Operator:=xlOr, Criteria16:="*" & Trim("Completed - Blueprint Only") & "*", _ 
     Operator:=xlOr, Criteria17:="*" & Trim("Completed Licensee") & "*", _ 
     Operator:=xlOr, Criteria18:="*" & Trim("CPB Qualification form answered") & "*", _ 
     Operator:=xlOr, Criteria19:="*" & Trim("CPB Qualification form sent") & "*", _ 
     Operator:=xlOr, Criteria20:="*" & Trim("Dealer Awarded") & "*", _ 
     Operator:=xlOr, Criteria21:="*" & Trim("deposit rec’d") & "*", _ 
     Operator:=xlOr, Criteria22:="*" & Trim("Closed Sale") & "*", _ 
     Operator:=xlOr, Criteria23:="*" & Trim("Disponibilité territoire en attente") & "*" 

Тем не менее, это показывает предупреждение "Слишком может выстраиваются в линию продолжений".

Любые мысли?

+1

Range.Autofilter имеет только два критериальных аргумента: «Критерии1» и «Критерии2». Вы также можете указать только один *** параметр *** для 'Operator'. [См. Документацию здесь] (https://msdn.microsoft.com/en-us/library/office/ff193884.aspx). – Comintern

ответ

1

По какой-то странной причине существует ограничение на количество строк, которые вы можете иметь в VBA.

Из памяти, это 25.

Очевидный, но не особенно эстетично, решение вновь присоединиться к некоторым из линий.

+0

Хм. Это может быть обходным путем. Но я попробовал иметь 3 условия, и VBA вернул мне «Ошибка определения приложения или объекта» – Tanmoy

+0

@Tanmoy - см. [Отфильтровать несколько критериев, используя excel vba] (http://stackoverflow.com/questions/28575754/filter-out- множественный-критерий-использующий-Excel-VBA). – Comintern

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