如何用vba清空删除工作表中的所有数据透视表?

用用vba清空删除工作表中的所有数据透视表会涉及到几个容易混淆的概念。

第一个是清空数据透视表的所有内容,但是保留数据透视表刚创建时的样子,也就是没有字段拖动到透视表区域,这时候可以使用PivotTable对象的ClearTable方法。

第二个是删除所有数据透视表,就像从来没有创建过一样,这时候可以使用数据透视表PivotTable对象的TableRange2属性返回数据透视表所在的所有单元格区域,然后用Range对象的Delete方法删除单元格区域。

这里要注意的是PivotTable对象的TableRange2属性是包含页字段在内的所有数据透视表单元格区域,而PivotTable对象的TableRange1属性是没有包括页字段在内的所有数据透视表单元格区域。

以下是通用的删除当前工作簿的所有工作表的数据透视表的代码:

Sub QQ1722187970()
    Dim oPT As PivotTable
    Dim oWK As Worksheet
    For Each oWK In Excel.ThisWorkbook.Worksheets
        With oWK
            For Each oPT In .PivotTables
                With oPT
                    .TableRange2.Delete
                End With
            Next
        End With
    Next
End Sub
       

发表评论