整理格式化的表格?

我正试图将多个格式化的表跨越一张工作簿的所有表格合并成一个主表格。

我有以下的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错误。

我以为我的问题是我不能select一个范围没有先select表,因此行“sht.Activate”。 唉,没有运气。

然后我想这也许是因为tbl是一个listobject,types是错误的,所以我尝试使用临时stringvariables,并保存tbl.name到第一个,并使用范围(tempvariable).select唉,没有运气。

我也尝试只是硬编码表的名称:范围(“tablename”)select,但没有任何工作…

我知道它简单的东西,但我挂了,所以有人可以解释我失踪?

我通常会按照以下方式引用一个ListObject表:

 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