合并格式化表格?

时间:2015-07-01 01:11:39

标签: excel vba consolidation

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

我有以下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)行。选择我得到运行时1004错误。

我认为我的问题是在没有先选择纸张的情况下我无法选择范围,因此行“sht.Activate”。唉,没有运气。

然后我认为可能因为tbl是一个listobject,类型是错误的,所以我尝试使用临时字符串变量并将tbl.name保存到第一个并在范围内使用它(tempvariable)。选择唉,不运气。

我也尝试过对表格的名称进行硬编码:范围(“tablename”)。选择,但这也不起作用......

我知道它的一些简单但我挂了所以有人可以解释我错过的东西吗?

1 个答案:

答案 0 :(得分:2)

我通常会以下列方式引用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 表:

MethodInfo