如何在多个对象上重复相同的With语句?

时间:2019-04-11 00:33:25

标签: excel with-statement

我正在设置动态报告,并希望在我更改一个单元格值的同时过滤多个数据透视表。我没有VBA经验,找不到公司内任何可以提供帮助的人。

由于数据透视表是单独的对象,因此我将它们都定义为不同的维度,并将这些维度指向不同的数据透视表,但是用于指示数据透视表过滤器的单元格保持不变。下面是从我的Google搜索修改而来的。原始代码可以很好地更新1个数据透视表。经过无知的修改代码尝试后,我遇到了应用程序定义或对象定义的错误。

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("D1:D2")) Is Nothing Then Exit Sub

Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String

Dim pt1 As PivotTable
Dim Field1 As PivotField
Dim NewCat1 As String

Set pt = Worksheets("Sheet1").PivotTables("PivotTable1")
Set Field = pt.PivotFields("Code")
NewCat = Worksheets("Sheet1").Range("D1").Value

Set pt1 = Worksheets("Sheet1").PivotTables("Pivotable2")
Set Field1 = pt1.PivotFields("Code")
NewCat1 = Worksheets("Sheet1").Range("D1").Value

With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable

End With

With pt1
Field1.ClearAllFilters
Field1.CurrentPage = NewCat1
pt1.RefreshTable

End With

End Sub

0 个答案:

没有答案