另一个工作簿的AdvancedFilter Criteriarange

我正在尝试筛选列A(“名称”)中的名称列表,条件是列E(“主类别”)不是“IT”。 我可以完成名称过滤或者<> IT过滤,但是我不知道如何把这两个语句放在一起。 理想情况下,我希望代码在dynamic列表的另一封闭工作簿中查看条件信息。 这是我到目前为止。

Sub Macro1() ' Range("A1:A196").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Sheets("Sheet1").Range("A1:A59"), Unique:=False End Sub Sub Macro3() ' Range("E1:E196").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _ Sheets("Sheet1").Range("E1:E2"), Unique:=False End Sub 

任何帮助在这个方向将不胜感激!

要按照您在同一工作表中的要求过滤数据,请尝试此操作。 进一步请参阅@Rory评论,标准范围不能在一个封闭的工作簿。

 Sub Sort_Filter() With ActiveWorkbook.Worksheets("Sheet1").Range("$A$1:$E$196") .AutoFilter Field:=5, Criteria1:="<>*IT*", _ Operator:=xlAnd End With With ActiveWorkbook.Worksheets("Sheet1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub 

Bwfore程序运行 程序运行后

您可以打开已closures的工作簿来使用它,然后在完成后closures它。

 Dim w As Workbook Dim n As Workbook Set w = ActiveWorkbook Workbooks.Open "workbook_with_criteria.xlsx" Set n = ActiveWorkbook w.Activate ... n.Close