2013-04-09 95 views
2

有沒有一種方法可以在Excel中觸發列過濾器上的宏功能?VBA:在列過濾器上觸發宏

請幫忙

謝謝。

+1

不,沒有,但是如果你告訴我們更多關於你想做什麼,我們可以幫助 – 2013-04-09 14:20:39

+0

@ user2144293,你的意思是'user-defined-function'或'sub macro'? – 2013-04-09 14:23:51

+0

我需要檢查篩選的列是否有數據或null。 – user2144293 2013-04-09 14:31:38

回答

10

我只是想如果我可以發佈這個答案。我想你們中的一些人不會喜歡它,因爲它不是通過介紹旁路解決方案的直接答案。不過,我認爲我可以將這個想法表示爲,但我們並沒有在問題中列出所有項目假設。

讓我們同意 - 我們都知道,在我們改變過濾之後沒有事件發生。但是,我看到一個選項。

更改過濾器可能會觸發Worksheet_Calculate事件(而不是Worksheet_Change)。如果您的工作表中有任何單一的公式,那麼每次我們使用我們的鼠標更改過濾標準時,我們都會觸發該事件。

步驟1.把任何單一配方中的片材,如在細胞ZZ1其中= ZZ2

步驟2.我假定我們的數據範圍在範圍(A1)開始,並且我們在標題第一排(見圖片)。我也假設這個區域下面沒有任何東西。

enter image description here

步驟3.把那以下Sheet 1中模塊的解決方案。

Private Sub Worksheet_Calculate() 

If ActiveSheet.Name = "Sheet1" Then 
    If Cells(Rows.Count, 1).End(xlUp).Row = 1 Then 
     MsgBox "No data available" 
    Else 
     MsgBox "There are filtering results" 
    End If 
End If 
End Sub 

第4步:使用過濾器會觸發該事件,並與下列情況導致:

enter image description hereenter image description here

我希望有人會喜歡它,並可以使用。即使它只是一個旁路的想法。