macros/私人小组:同时在几张纸上设置类似的filter
我使用名字命名的工作表; Rev00,Rev01,Rev02等 – 我的工作簿中的其他表。
这将是非常有用的(为了比较不同版本的子汇总)设置完全相同的多个filter – 在活动工作表中设置 – 只在所有以“Rev”开头的工作表中。
这个动作应该是最想要的双击Range("A1")
或类似的地方(我不希望在这一个buttonRange("A1")
点击激活。
如果可能的话,双击范围(“A1”)应该重置filter。
Sub Test() Dim ws As Worksheet, str As String For Each ws In Worksheets str = Left(ws.Name, 3) If str = "Rev" Then ' set filter as in active.sheet End If Next ws End Sub
…我被卡住了….有人会指导我吗?
对的,这是可能的。 :)这是一个如何工作的基本示例。
Sub Test() Dim ws As Worksheet, str As String For Each ws In Worksheets str = Left(ws.Name, 3) If UCase(str) = "REV" Then With ws '~~> Remove any filters .AutoFilterMode = False With <YOUR RANGE> .AutoFilter Field:=<RELEVANT FIELD>, _ Criteria1:=<YOUR CRITERIA> ' '~~> Rest of the code ' End With '~~> Remove any filters '.AutoFilterMode = False End With End If Next ws End Sub
在这里你可以看到Autofilter在行动:)
要通过单击范围A1
来调用上面的代码,您可以使用Worksheet_BeforeDoubleClick
事件。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("A1")) Is Nothing Then ' '~~> Your code goes here ' Cancel = True End If End Sub
关于您将Range A1
作为ON / OFF开关进行响应的查询,您可以使用这里显示的布尔variabless