2015-10-23 3 views
1

Я пытаюсь автоматизировать AdvancedFilter для нескольких листов в книге. Тем не менее, я нахожусь в Type Mismatch, и я не могу найти то, что нужно изменить, так как перешагивание всего лишь выделяет весь блок кода. Приведенная ошибка:Ошибка несоответствия типа с использованием 'AdvanceFilter'

Ошибка выполнения '13': Несоответствие типа

Код:

Private Sub CommandButton1_Click() 

    For Each ws In Array(Worksheets("test"), Worksheets("test1"), Worksheets("test2"), Worksheets("test3"), Worksheets("test4")) 
     ws.Activate 
     Sheets("Main").Range("A:J").AdvanceFilter Action:=xlFilterCopy, _ 
      CriteriaRange:=Sheets(ws).Range("A1:A2"), CopyToRange:=Sheets(ws).Range("A3"), Unique:=False 
    Next 

End Sub 
+0

ли вы пытаетесь добавить Dim ws As Worksheet перед циклом? – Yaegz

+0

Не нужно, цикл for создает его. Но когда я делаю «Dim ws As Worksheet», он выдает «время выполнения 424 объекта» – Mukul215

+0

Критерии определены на каждом листе? кажется, что ваши критерии включены в диапазон, который вы фильтруете. – datatoo

ответ

1

Замените AdvancedFilter линию с этим:

Sheets("Main").Range("A:J").AdvancedFilter xlFilterCopy, ws.Range("A1:A2"), ws.Range("A3") 
+0

Спасибо, что сработало! – Mukul215

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