ワークブックのすべてのシートにある複数の書式設定されたテーブルを 1 つのメイン テーブルに統合しようとしています。
すべてのシートとテーブルをループする次の VBA があります。
Sub GatherTables()
Dim tbl As ListObject
Dim sht As Worksheet
For Each sht In ThisWorkbook.Worksheets
sht.Activate
If sht.Name = "Summary" Or sht.Name = "Consolidated" Then
'do nothing
Else
For Each tbl In sht.ListObjects
Range(tbl.Name).Select
Selection.Copy
'do something with it
Next tbl
End If
Next sht
End Sub
そのコードを実行すると、Range(tbl.Name).Select 行でランタイム 1004 エラーが発生します。
私の問題は、最初にシートを選択しないと範囲を選択できないため、「sht.Activate」という行だと思いました。悲しいかな、運が悪い。
次に、tbl が listobject だったために型が間違っているのではないかと考えたので、一時的な文字列変数を使用して、最初に tbl.name を保存し、それを range(tempvariable).select で使用してみました。
また、テーブルの名前をハードコーディングしようとしました:range( "tablename").select、しかしそれもうまくいきませんでした...
私はそれが単純なことを知っていますが、私はハングしているので、誰かが私が欠けているものを説明できますか?