2015-10-23 45 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循环创建它。但是当我做'昏暗的ws作为工作表'它会抛出'运行时424对象需要' – Mukul215

+0

标准是在每张表上定义?它看起来像你的标准包含在你正在过滤的范围内 – datatoo

回答

1

这个替换您AdvancedFilter行:

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

谢谢你的工作! – Mukul215