3

有人能告诉我如何在工作簿(或工作表)中找到所有数据透视表吗?在某些情况下,数据透视表可能被隐藏或很难在非常大的 Excel 工作表中找到。如果我至少可以获得数据透视表所在的单元格地址或范围,那就太好了。

谢谢。

4

2 回答 2

6

这应该适合你。它将结果打印到立即窗口:

Sub FindPivotTables()
    Dim wst As Worksheet
    Dim pvt As PivotTable
    ' loop through all sheets and print name & address of all pivot tables
    For Each wst In ActiveWorkbook.Worksheets
        For Each pvt In wst.PivotTables
            Debug.Print wst.Name, pvt.TableRange2.Address, pvt.Name
        Next pvt
    Next wst
End Sub
于 2011-12-15T04:59:38.500 回答
0

每个工作表都应该公开一个PivotTables集合;您可以遍历每个工作表以查找具有 a 的工作表,.PivotTables.Count > 0然后遍历该工作表上的工作表PivotTables以找到您要查找的工作表:

Sub Test()

    Dim pTable As pivotTable

    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets

        Dim pivotTableCount

        pivotTableCount = ws.PivotTables.Count

        If pivotTableCount > 0 Then

            For Each pTable In ws.PivotTables

                 Dim pivotTableName As String
                 pivotTableName = pTable.Name

                 Dim pivotTableTopLeftCell As String
                 pivotTableTopLeftCell = pTable.Location

            Next pTable 

        End If



    Next ws


End Sub
于 2011-12-14T20:29:53.040 回答