合并格式化表格?

Consolidate formatted tables?

我正在尝试将工作簿的所有 sheet 中的多个格式化 table 合并到一个主要的 table。

我有以下 VBA 循环所有 sheets 和 tables:

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 我得到一个 运行time 1004 错误。

我认为我的问题是如果不先 select 进入 sheet 就无法 select 范围,因此 "sht.Activate" 行。 las,没有运气。

然后我想可能是因为 tbl 是一个列表对象,所以类型是错误的,所以我尝试使用一个临时字符串变量并将 tbl.name 保存到第一个并在范围(tempvariable)中使用它。 select唉,运气不好

我也尝试过硬编码 table 的名称:range("tablename").select,但这也没有用...

我知道这很简单,但我很困惑,所以有人可以解释一下我缺少什么吗?

我通常会按以下方式引用 ListObject table:

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
            ActiveSheet.ListObjects(tbl.Name).Range.Select
            Selection.Copy
            'do something with it
        Next tbl
    End If
Next sht

End Sub