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