2016-08-30 11 views
-1

Excelブックに複数のシートがあり、各シートにテーブルがあります。私はオブジェクト内のすべてのシートを選択したいので、setオブジェクトを1つずつ選択することでそれらを繰り返し処理できます。ブック内のすべてのシートを通過してテーブルを反復する

どうすればいいですか?

+0

範囲は、シートではなく、反対にあります。シートは範囲内にあることはできません。あなたの質問を言い換えてください。 –

+0

オブジェクト内のすべてのシートを選択したいので、セットオブジェクト内のテーブルを1つずつ選択して反復することができます。 – Maven

答えて

1

これはあなたが始める必要があります。

Dim ws As Worksheet 
Dim tbl As ListObject 

For Each ws In ThisWorkbook.Worksheets 
    For Each tbl In ws.ListObjects 
     Debug.Print ws.Name, tbl.Name, tbl.Range.Address 
    Next tbl 
Next ws 

を私は主題をカバーthis pagethis oneを発見しました。


編集:あなたは、単純なRangesについて話すことTablesを使用しているように見えるとして、ここではRange指向の代替です:

Dim ws As Worksheet 

For Each ws In ThisWorkbook.Worksheets 
    Debug.Print ws.Name, Range("A1").CurrentRegion.Address 
Next ws 
+0

ありがとう、私はこれでシートを得ることができますが、 'ws.ListObjects.Count'はゼロのままです。 Excelのテーブルとして何が構成されているのですか?シートにはセルと行のデータがあります。テーブルと見なす必要がありますか? – Maven

1
Sub LoopThroughAllTablesinWorkbook() 

    Dim tbl As ListObject 
    Dim sht As Worksheet 

    For Each sht In ThisWorkbook.Worksheets 
     For Each tbl In sht.ListObjects 

      'Your code here... 

     Next tbl 
    Next sht 

End Sub 
関連する問題