簡體   English   中英

Excel 2013 VBA從單個單元格過濾多個數據透視表不起作用

[英]Excel 2013 VBA to filter multiple pivot tables from single cell not working

第一次發布。

我有一個Excel 2013電子表格,上面有三個主要故事。 我正在嘗試通過引用同一張紙上的單元格來自動更新它們。 VBA代碼是:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'This line stops the worksheet updating on every change, it only updates when cell B1 is touched
If Intersect(Target, Range("B1")) Is Nothing Then Exit Sub

'Set the Variables to be used and assigns their values

Dim WS1 As Worksheet: Set WS1 = ActiveWorkbook.Worksheets("PIVOT")
Dim PT1 As PivotTable: Set PT1 = WS1.PivotTables("pgmTable1")
Dim PT2 As PivotTable: Set PT2 = WS1.PivotTables("pgmTable2")
Dim PT3 As PivotTable: Set PT3 = WS1.PivotTables("pgmTable3")

Dim PF1 As PivotField: Set PF1 = PT1.PivotFields("REPORTING_DATE")
Dim PF2 As PivotField: Set PF2 = PT2.PivotFields("REPORTING_DATE")
Dim PF3 As PivotField: Set PF3 = PT3.PivotFields("REPORTING_DATE")

Dim filterCell As Date

'This reassigns the filter to the sheet-defined value
filterCell = WS1.Range("B1").Value

'This updates and refreshes the PIVOT tables
With PT1
PF1.ClearAllFilters
PF1.CurrentPage = filterCell
PT1.RefreshTable
End With

With PT2
PF2.ClearAllFilters
PF2.CurrentPage = filterCell
PT2.RefreshTable
End With

With PT3
PF3.ClearAllFilters
PF3.CurrentPage = filterCell
PT3.RefreshTable
End With

End Sub

這是電子表格:

回來了

運行時錯誤“ 1004”:應用程序定義或對象定義的錯誤

PF1.CurrentPage = filterCell

過去,此代碼適用於包含單個數據透視表的工作表。 我是一個相對的菜鳥,已經把這個混在一起了。 我敢肯定,有一個更優雅的方法可以使用for循環進行此更新。

此外,我嘗試將這些數據透視表拆分到自己的工作表中,但沒有成功。

任何幫助,將不勝感激!

嗯,為什么不在Excel中使用“切片器”? 您可以輕松連接多個數據透視表,而不必使用VBA。

  1. 單擊數據透視表中的任何單元格。
  2. 轉到“分析”
  3. 尋找“插入切片器”
  4. 選擇要用作過濾器的字段
  5. 右鍵單擊切片器
  6. 查找“報告連接...”,然后使用該切片器連接所有要過濾的數據透視表。

注意:所有數據透視表都需要相同的源。

我制作了本教程 它是西班牙語,但我使用的是英語Excel版本。

暫無
暫無

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

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