2013-12-09 27 views
1

我使用名爲; Rev00,Rev01,Rev02等 - 我的工作簿中的其他表格。微距/專用子:在幾張紙上同時設置類似的濾鏡

這將是非常有益的(爲了比較不同修訂版的子摘要),以設置完全相同的多個過濾器 - 在活動工作表中設置 - 只在所有以「Rev」開頭的工作表中。

這個動作應該是最想要的雙擊在Range("A1")或類似的地方(我不想在這個按鈕上)。

如果可能的話雙擊範圍(「A1」)應該重置過濾器。

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 

...我被卡住了...... 有人會指導我嗎?

+0

你有什麼實際的問題一個布爾變量s? – 2013-12-09 13:57:38

回答

1

是的,這是可能的。 :)這是一個關於它應該如何工作的基本示例。

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 

Here你可以看到自動篩選在行動:)

要通過單擊範圍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 

關於你提到的有關使範圍A1響應作爲一個ON/OFF開關查詢,您可以使用顯示HERE

+0

我真的得到了標準1 –

+0

工作流是這樣的理論: –

+0

您是否看到下面的代碼段關於如何定義您的citeria1的鏈接? –