2016-08-01 17 views
1

我已經看到了如何調用時,過濾器上的數據透視表在這裏應用了宏:How to run a macro automatically when the selections of pivot tables are changed如何當上的特定透視字段,應用濾鏡運行宏

但我有不同的要求,我有5 Pivot字段和每個過濾器更改具有不同的功能來執行。所以,我想知道是否可以爲每個Pivot字段分配一個不同的宏?

我知道我可以使用worksheet_Change函數,然後使用range作爲參數來檢查過濾器是否應用在該範圍內。但是這裏的問題是,我將在宏中移動Pivot Fields到Column標籤和行標籤,隨後調用其他宏。

我不希望發生這種情況。這就是我正在尋找一種方法來檢測一個樞軸點上的樞軸篩選器更改的原因

回答

0

是的,您可以,但它非常困難,因爲PivotTable_Update事件不會告訴您哪個特定字段得到更新。我發現了一種主要用於消除過程的方法,並且在所有其他方式都失敗的情況下使用力量。見我的系列文章中,在以下鏈接覆蓋此:

[編輯]一個更簡單的選擇,如果你正在使用Excel 2010或更高版本是爲每個PivotField設置一個切片器,併爲原始數據透視表中的每個字段創建一個新的數據透視表,但只有一個在那個領域。然後通過切片機將其連接到原始數據透視表。當任何人篩選原始數據透視表或單擊切片器時,它將爲主數據透視表和連接到該特定字段的較小數據透視表生成一個PivotTable_Update事件。因此,您只需檢查Update事件引發的數據透視表的名稱,然後相應地觸發相應的宏。以下是如何看起來概念: enter image description here

...這是這取決於什麼領域或分割器用戶點擊有條件地調用宏代碼:

Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable) 
Select Case Target.Name 
Case "PivotTable2": 'put name of macro you want to trigger here 
Case "PivotTable3": 'put name of macro you want to trigger here 
End Select 
End Sub 

把這些代碼放在ThisWorkbook代碼模塊中。

+0

我想我明白它有多難。也許我需要爲此找到解決辦法。 – Pramod

+0

您使用的是什麼版本的Excel? – jeffreyweir

+0

Pramod - 我已經更新了我的答案,以包含更簡單的解決方案。 – jeffreyweir

相關問題