我有以下代码,其中我尝试应用3个过滤器,现在我想要的是根据命名范围应用此过滤条件 我已经在特定的单元格中存储了相关值,并为该范围指定了名称
对于第一个条件,即> = 200的命名范围为VOLUME
对于第二个条件,即> = 0.07,命名范围为MOVE
对于第三个条件,即> = 400,命名范围为STRENTH
那么我需要在以下代码中进行哪些更改?
Sub FILTER2()
'FILTER CRITERIA
ActiveSheet.Range("$A$2:$AC$500").AutoFilter Field:=6, Criteria1:=">=200", _
Operator:=xlAnd
ActiveSheet.Range("$A$2:$AC$500").AutoFilter Field:=21, Criteria1:=">=0.07" _
, Operator:=xlAnd
ActiveSheet.Range("$A$2:$AC$500").AutoFilter Field:=28, Criteria1:=">=400" _
, Operator:=xlAnd
Range("A1").Select
End Sub
答案 0 :(得分:1)
根据我的评论,您可能希望考虑使用With
语句,最好不要参考ActiveSheet
Sub FILTER2()
With Sheet1 'Change according to your sheets CodeName
.Range("$A$2:$AC$500").AutoFilter 6, ">=" & .Range("VOLUME")
.Range("$A$2:$AC$500").AutoFilter 21, ">=" & .Range("MOVE")
.Range("$A$2:$AC$500").AutoFilter 28, ">=" & .Range("STRENTH")
End With
End Sub
答案 1 :(得分:0)
您可以尝试定义一个变量以包含命名范围的值。 在工作表中将Range命名为“ Volume”,然后可以将该值存储在名为Range1的var中。
以下示例:
Sub FILTER2()
namedRange1 = range("Volume")
'FILTER CRITERIA
ActiveSheet.range("$A$2:$AC$500").AutoFilter Field:=6, Criteria1:=">=" & namedRange1, _
Operator:=xlAnd
....与其他行相同,只需定义新变量以包含新的命名范围