我在列标题" Area"上有一个过滤器当应用时,仅显示区域与所应用的过滤器匹配的记录,例如, 5。
是否有一段代码将过滤器中的值存储在变量中?
过滤器使用的代码是:
ActiveSheet.Range("$A$3:$BN$197").AutoFilter Field:=2, Criteria1:=
所以我想要的是:
dim Filter As String
Filter = ActiveSheet.Range("$A$3:$BN$197").AutoFilter Field:=2, Criteria1:=
但问题是因为它是一个过滤器,区域过滤可以改变,即一个用户可以过滤区域5而另一个用户过滤区域4。
答案 0 :(得分:1)
基本上你想要这样的东西:
Dim ftr As Filter
Dim sCriterion As String
Set ftr = ActiveSheet.AutoFilter.Filters(2)
If ftr.On Then sCriterion = Mid$(ftr.Criteria1, 2)
只要您知道,他们就只会对一个值进行过滤。否则,您需要检查Operator
,然后确定适当的过滤器类型。
对于自动事件代码,您可以使用:
Private Sub Worksheet_Calculate()
Dim ftr As Filter
On Error Goto hell
Set ftr = ActiveSheet.AutoFilter.Filters(2)
If ftr.On Then
application.enableevents = False
debug.print ftr.criteria1
Range("E205").value = Mid$(ftr.Criteria1, 2)
End If
hell:
application.enableevents = true
End Sub
右键单击工作表标签,选择查看代码,然后将其粘贴到其中。