我正在尝试过滤A列(“名称”)中的名称列表,条件是E列(“主要类别”)不是“IT”。我可以完成名称过滤或<> IT过滤,但我不知道如何将两个语句放在一起。理想情况下,我希望代码在动态列表中的另一个已关闭的工作簿中查找条件信息。这是我到目前为止所拥有的。
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
非常感谢这方面的任何帮助!
答案 0 :(得分:1)
要根据您在同一工作表中的要求过滤数据,请尝试此操作。 进一步请参阅@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
答案 1 :(得分:1)
您可以打开已关闭的工作簿以使用它,然后在完成后关闭它。
Dim w As Workbook
Dim n As Workbook
Set w = ActiveWorkbook
Workbooks.Open "workbook_with_criteria.xlsx"
Set n = ActiveWorkbook
w.Activate
...
n.Close