【发布时间】:2012-07-13 04:46:43
【问题描述】:
我正在尝试通过 VBA 操作 Excel 2007 数据透视表,因此我可以循环遍历数据透视表的类别,将所有内容设置为不可见,但将工作表另存为 pdf 并继续下一个类别。为此,我使用以下代码。
Dim pf As PivotField
Set pf = ActiveSheet.PivotTables("PivotTable1").PivotFields("NAME")
Dim pi as PivotItem
For Each pi In pf.PivotItems
If pi.Visible = False Then
pi.Visible = True 'Error here
End If
Dim pi2 As PivotItem
For Each pi2 In pf.PivotItems
If pi2 <> pi Then
pi2.Visible = False
End If
Next pi2
'Saving to PDF goes here
Next pi
循环似乎是第一次工作。每个类别都被取消选择,但第一个类别会输出一个漂亮的 PDF 文件。下次它进入循环时,它会在指示的行出现“无法设置 PivotItem 类的 Visible 属性”错误。我知道在数据透视表中必须至少选择一个项目,但这不是问题,因为我试图将可见性设置为 TRUE 而不是 FALSE。
我尝试通过检查它来修复它,因为您可能不允许将已经可见的 PivotItem 设置为可见,但这似乎不起作用。
任何帮助将不胜感激!
【问题讨论】:
-
如果您注释掉创建 PDF 的部分,它是否可以正常工作?
-
您使用的是什么版本的 Excel?
标签: vba excel pivot-table