2011-12-14 20 views
3

ワークブック(またはシート)内のすべてのピボットテーブルを見つける方法を教えてもらえますか?場合によっては、非常に大きなExcelシートでピボットテーブルが隠れているか見つからないことがあります。もし私が少なくとも、ピボットテーブルがどこにあるかのセルアドレスまたは範囲を得ることができれば、それは素晴らしいものです。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

作品!ありがとう。 –

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に2つのことを実証したかったのです。ワークシートループ、およびピボットテーブルコレクションに加えて、いくつかの典型的なプロパティを示します。私は誰かが各ビットがどのように動作するかを見るために、コードを通してf8に喜んでいると期待しています。ループ内の変数を宣言することについてのあなたの要点は興味深いものですが、本当に依存することができます。私は、特に大きなモジュールでは、可読性とスコープのために変数を使用するところに近い変数を宣言することを好みます。 – dash

+0

私はもっと簡潔な解決策をあなたにアップアップしました:-) – dash

関連する問題