Excelブックに複数のシートがあり、各シートにテーブルがあります。私はオブジェクト内のすべてのシートを選択したいので、set
オブジェクトを1つずつ選択することでそれらを繰り返し処理できます。ブック内のすべてのシートを通過してテーブルを反復する
どうすればいいですか?
Excelブックに複数のシートがあり、各シートにテーブルがあります。私はオブジェクト内のすべてのシートを選択したいので、set
オブジェクトを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 pageとthis oneを発見しました。
編集:あなたは、単純なRanges
について話すことTables
を使用しているように見えるとして、ここではRange
指向の代替です:
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
Debug.Print ws.Name, Range("A1").CurrentRegion.Address
Next ws
ありがとう、私はこれでシートを得ることができますが、 'ws.ListObjects.Count'はゼロのままです。 Excelのテーブルとして何が構成されているのですか?シートにはセルと行のデータがあります。テーブルと見なす必要がありますか? – Maven
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
範囲は、シートではなく、反対にあります。シートは範囲内にあることはできません。あなたの質問を言い換えてください。 –
オブジェクト内のすべてのシートを選択したいので、セットオブジェクト内のテーブルを1つずつ選択して反復することができます。 – Maven