【发布时间】:2019-09-09 12:06:04
【问题描述】:
我找到了一种从 Excel 单元格动态调整数据透视表过滤器的解决方案,效果很好;见这里:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
'This line stops the worksheet updating on every change, it only
updates when cell
'D1 or D2 is touched
If Intersect(Target, Worksheets("test").Range("D1:D2")) Is Nothing
Then Exit Sub
'Set the Variables to be used
Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String
'Here you amend to suit your data
Set pt = Worksheets("test").PivotTables("PivotTable2")
Set Field = pt.PivotFields("Name")
NewCat = Worksheets("test").Range("D1").Value
'This updates and refreshes the PIVOT table
With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With
End Sub
我试图弄清楚如何循环这个例如定义的次数(即 60 次)来控制大量的数据透视表都引用不同的单元格。
计划是有一个员工列表,每个数据透视表将显示与该员工相关的数据,但员工列表将是动态的。
最终目标是设置分页符并快速刷新和打印个人技能水平以供员工评估。
【问题讨论】:
-
数据透视表是否在不同的工作表上?
-
如果您创建了一个minimal reproducible example,说明您是如何尝试实现目标的以及哪些是无效的,我们可以更轻松地为您提供帮助。现在,您要求我们为您编写循环代码,并且仅提供模糊的规范,我们不可能知道您的工作簿的详细信息
-
你有没有想过用切片机解决你的任务?见 [contexturesblog.com/archives/2011/03/07/…
-
您是否考虑过使用 2 个数组,一个是 Cells(
Array("D1:D2", "F1:F2", "G1,G7"),等等),另一个是对应的 PivotTables(Array("PivotTable2", "PivotTable3", "Copy of PivotTable1"),等等)? -
这是我在逻辑上苦苦挣扎的问题,我的代码适用于一个数据透视表,但我什至不知道如何像通常的 Dim i As Integer For i = 1 To 3 一样开始实现循环Cells(i, 1).Value = 100 接下来我似乎不合适