合并格式化表格?
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
我正在尝试将工作簿的所有 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