我正在尝试将工作簿所有工作表中的多个格式化表格合并到一个主表格中。
我有以下 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 是一个列表对象,所以类型错误,所以我尝试使用一个临时字符串变量并将 tbl.name 保存到第一个并在 range(tempvariable).select 中使用它 唉,不走运。
我还尝试对表的名称进行硬编码:range("tablename").select,但这也不起作用......
我知道这很简单,但我被挂了,所以有人可以解释我错过了什么吗?