Excel 2013 VBA从单个单元格中筛选多个透视表无效

Excel 2013 VBA从单个单元格中筛选多个透视表无效,vba,excel,Vba,Excel,第一次张贴 我有一个Excel 2013电子表格,上面有三个pivot故事。我试图通过引用同一工作表上的单元格来自动更新它们。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,

第一次张贴

我有一个Excel 2013电子表格,上面有三个pivot故事。我试图通过引用同一工作表上的单元格来自动更新它们。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”:应用程序定义的错误或对象定义的错误

这段代码过去曾用于包含单透视表的工作表。我是一个相对的笨蛋,把这件事混在一起了。我确信有一种更优雅的方法可以使用for循环进行更新

此外,我还尝试将这些数据透视表拆分到它们自己的工作表中,但没有成功

任何帮助都将不胜感激

嗯,你为什么不在Excel中使用“切片器”?您可以轻松地连接多个数据透视表,而无需使用VBA

  • 单击透视表中的任意单元格
  • 进入“分析”
  • 查找“插入切片器”
  • 选择要用作筛选器的字段
  • 在切片器中单击鼠标右键
  • 查找“Report Connections…”并连接所有要使用切片器过滤的数据透视表
  • 注意:所有透视表都需要相同的源

    这是我做的。它是西班牙语的,但我使用的是英文版的Excel。

    嗯,你为什么不在Excel中使用“切片器”?您可以轻松地连接多个数据透视表,而无需使用VBA

  • 单击透视表中的任意单元格
  • 进入“分析”
  • 查找“插入切片器”
  • 选择要用作筛选器的字段
  • 在切片器中单击鼠标右键
  • 查找“Report Connections…”并连接所有要使用切片器过滤的数据透视表
  • 注意:所有透视表都需要相同的源


    这是我做的。它是西班牙语的,但我使用的是英语Excel版本。

    如果你有锤子,一切看起来都像钉子。谢谢那个切片机的把戏做得很好!不客气!嘿,关于电源查询或获取与转换的研究。您可以免费下载外接程序。这对你的工作会有很大帮助。我来这里有很好的理由。我的透视表来自不同的来源,所以我不能用一台切片机就够到所有的透视表。当你有一把锤子的时候,一切看起来都像钉子。谢谢那个切片机的把戏做得很好!不客气!嘿,关于电源查询或获取与转换的研究。您可以免费下载外接程序。这对你的工作会有很大帮助。我来这里有很好的理由。我的pivot表来自不同的来源,所以我不能用一个切片器访问所有的pivot表。