如何跳过Excel中的数据透视表中的空白页
由于将来的添加,数据透视表的源数据范围比现有数据长。对于这个原因,在数据透视表过滤器中,我有一个名为“Blank”的数据透视项 下面的代码每次更改数据透视项,然后打印数据透视项,然后是下一个数据透视项,依此类推 问题:它还打印没有信息的“空白”数据透视项。这就是为什么在计算页面时,我在行如何跳过Excel中的数据透视表中的空白页,excel,vba,Excel,Vba,由于将来的添加,数据透视表的源数据范围比现有数据长。对于这个原因,在数据透视表过滤器中,我有一个名为“Blank”的数据透视项 下面的代码每次更改数据透视项,然后打印数据透视项,然后是下一个数据透视项,依此类推 问题:它还打印没有信息的“空白”数据透视项。这就是为什么在计算页面时,我在行pivF.PivotItems.Count-1中添加了“-1” 问题:有人能帮我修改下面的代码以跳过该空白页吗(或者有人能告诉我如何删除该空白数据透视项) 两项建议: 从实际数据源动态确定填充单元格的范围,然后更
pivF.PivotItems.Count-1中添加了“-1”
问题:有人能帮我修改下面的代码以跳过该空白页吗(或者有人能告诉我如何删除该空白数据透视项)
两项建议:
从实际数据源动态确定填充单元格的范围,然后更改数据透视表上的数据源以匹配
例如,假设您通过VBA确定的activeRange
为Sheet1!A1:M2555:
pivF.ChangePivotCache ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, SourceData:=activeRange)
更好的选择是,如果可以,将源数据更改为表(也称为ListObject),然后使ListObject成为数据源,而不是标准范围。更改内容时,ListObjects更擅长动态调整大小。这可能会排除扩展范围以包括空行的需要
例如:
Dim tab as ListObject
Set tab = ws.ListObjects("Table1")
pivF.ChangePivotCache ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, SourceData:=tab)
或者,您可以在设计时将表作为源文件。将源数据格式化为表是最简单的解决方案。
Dim tab as ListObject
Set tab = ws.ListObjects("Table1")
pivF.ChangePivotCache ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, SourceData:=tab)