我试图同步2个数据透视表的过滤器(只是从一种方式,当pivot1中的过滤器被更改但不是opossite时,更改pivot2中的过滤器)。 但是当我尝试获取表单时出现此错误。
st = Target.Worksheet
超时时间Erro 438
对象不支持此属性或方法
此工作表中的数据透视图可能会在事件的VBA代码中更改" WorkbookOpen"因此,当此工作表处于活动状态时,它可能无法运行,这是代码:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
If Target.Name <> "pivot1" Then Exit Sub
Dim st As Worksheet
Dim pivot1 As PivotTable
Dim pivot2 As PivotTable
Set st = Target.Worksheet
Set pivot2 = st.PivotTables("pivot2")
Set pivot1 = st.PivotTables("pivot1")
For Each pf In pivot1.PageFields
If pf.Name <> "Filter1" Then
pivot2.PageFields(pf.Name).CurrentPage = pf.CurrentPage
End If
Next
End Sub
答案 0 :(得分:0)
由于工作表是对象,因此您需要使用Set关键字,即Set st = Target.Worksheet
另外请注意,这些数据透视表是否基于相同的数据源?如果是这样,则不需要VBA:只需添加切片器并通过右键单击切片器并选择报告连接来连接它们。