2011-12-14 4 views
3

통합 문서 (또는 시트)의 모든 피벗 테이블을 어떻게 찾을 수 있습니까? 경우에 따라 피벗 테이블이 숨겨져 있거나 매우 큰 엑셀 시트에서 찾을 수 없을 수도 있습니다. 만약 내가 적어도 셀 주소 또는 피벗 테이블 (들)의 위치 범위를 얻을 수 있다면 그것은 좋을 것입니다.excel 2007 피벗 테이블을 찾으십시오

감사합니다.

답변

7

: 각 워크 시트를 통해 루프 당신이 찾고있는 일을 찾아 그 sheeet에 PivotTables 통해 .PivotTables.Count > 0 다음 루프가 시트를 찾고 있습니다. 직접 실행 창에 결과를 인쇄합니다.

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 
+0

Works! 감사합니다. –

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 
+1

이 코드는 작동하지 않으며 정보를 반환하지 않습니다. 또한 루프 내에서 선언을 반복해서 수행해서는 안됩니다. –

+0

복사 및 붙여 넣기 오류를 놓치 셨습니다 (감사합니다!); 그렇지 않으면 pivotTableCount 검사를 제외하고는 코드가 루프 측면에서 동일합니다. 나는 OP에 두 가지 것을 보여주고 싶었다. 워크 시트 루프 및 피벗 테이블 컬렉션뿐만 아니라 몇 가지 일반적인 속성을 보여줍니다. 코드를 통해 누군가가 각 비트가 어떻게 작동하는지보고 싶어 할 것입니다. 루프에서 변수를 선언하는 것과 관련하여 요점은 흥미 롭습니다. 실제로 의존 할 수 있습니다. 특히 큰 모듈에서 가독성과 범위를 위해 변수를 사용하는 곳에서 변수를 선언하는 편을 선호합니다. – dash

+0

나는 더 간결한 해결책을 위해 당신을 upvoted했습니다 :-) – dash