[英]How to make two criteria if any one of them fulfill code will autofilter it?
The code is working fine for a single criterion. 该代码对于单个条件运行良好。 I want to make it work based on two criteria with an OR condition. 我想使它基于具有OR条件的两个条件。 If any one condition is met, it would auto filter the data. 如果满足任何一个条件,它将自动过滤数据。
Sub FilterCopyToOtherSheet()
'
Sheets("Sheet1").Range("A1:C7").AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Sheets("Sheet1").Range("E1:E2"), _
CopyToRange:=Sheets("Sheet2").Range("A1"), _
Unique:=False
End Sub
With the advanced filter criterions in the same row are AND
connected however criterions in different rows are OR
connected. 对于高级过滤器,同一行中的条件进行“ AND
连接,但是不同行中的条件进行“ OR
连接。
So in this example in Sheet1 所以在Sheet1的这个例子中
the criterion range reads like: 标准范围如下所示:
Filter if 过滤是否
Like = Yes AND Color <> Green AND Color <> Red
OR
Like = No AND Color = Green
OR
Like = No AND Color = Brown
So with 所以用
Sub FilterCopyToOtherSheet()
With ThisWorkbook
Set oWS1 = .Worksheets("Sheet1")
Set oWS2 = .Worksheets("Sheet2")
oWS2.Cells.ClearContents
lLastRowTable = oWS1.Cells(oWS1.Rows.Count, 1).End(xlUp).Row
lLastRowCrit = oWS1.Cells(oWS1.Rows.Count, 5).End(xlUp).Row
oWS1.Range("A1:C" & lLastRowTable).AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=oWS1.Range("E1:G" & lLastRowCrit), _
CopyToRange:=oWS2.Range("A1"), _
Unique:=False
End With
End Sub
it leads to 它导致
in Sheet2. 在Sheet2中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.