簡體   English   中英

Excel VBA-數據透視表上有多個過濾器:一個鏈接以過濾其他數據透視表; 一個基於我剛剛在選定范圍內單擊的單元格

[英]Excel VBA - multiple filters on pivot table: one linked to filter other pivot table; one based on the cell I just clicked on in a selected range

我正在嘗試撰寫一份基於位置和產品的數據透視表的報告。 位置過濾器應與該工作表上另一個數據透視表的過濾器相同(但是,由於數據集不同,我無法使用切片器)。 產品過濾器應根據我在特定范圍內單擊的單元格而變化。

我嘗試了很多在不同論壇上找到的內容,並已經適應了我的需求,但是在我看來,問題是我需要一個私有子SelectionSelection才能動態更改產品。 但是,我需要一個PivotTableUpdate私有子項作為位置過濾器。 不能在一張紙上都放嗎? 那么如何處理這些情況呢? 我用於productfilter的代碼是:Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim ws As Worksheet
    Dim pt As PivotTable

If Target.Column = 13 Then
  Range("M2").Value = Target.Value

End If
End Sub

這基本上是將值從第13列中單擊的單元格復制到單元格M2,該單元格是我的可透視表過濾器的單元格。 另一個問題是,如果單擊未提供有效過濾器條目的單元格,則會出現錯誤。 怎么解決呢?

謝謝您的幫助!

如果兩個數據透視表都在同一張紙上並且具有一頁過濾器,則可以像將其添加到ThisWorkbook模塊中一樣簡單:

Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
    Application.EnableEvents = False
    If Target.PageRange.Column <> Sh.PivotTables(1).PageRange.Column Then
        Sh.PivotTables(1).PageRange.Cells(1, 2).Value = Target.PageRange.Cells(1, 2).Value
    Else
        Sh.PivotTables(2).PageRange.Cells(1, 2).Value = Target.PageRange.Cells(1, 2).Value
    End If
    Application.EnableEvents = True
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM