VBA:从filter中检索数据并将其存储在variables中
我在列标题“区域”上有一个filter,应用时只显示区域匹配应用的filter的logging,例如5。
是否有一段代码将filter的值存储在variables中?
filter使用的代码是:
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:=
但问题是因为它是一个filter,过滤区域可以改变,即一个用户可能过滤区域5,而另一个用户可能过滤区域4。
基本上你想要这样的东西:
Dim ftr As Filter Dim sCriterion As String Set ftr = ActiveSheet.AutoFilter.Filters(2) If ftr.On Then sCriterion = Mid$(ftr.Criteria1, 2)
只要你知道他们只会过滤一个值。 否则,您需要检查Operator
,然后确定适当的filter。
对于自动事件代码,您可以使用:
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
右键单击工作表选项卡,select查看代码 ,然后将其粘贴进去。