0
我正在尝试将所有工作簿中的多个格式化表合并到一个主表中。合并格式化表格?
我有以下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
当我运行的代码,在该行范围(tbl.Name)。选择我得到一个运行时错误1004。
我认为我的问题是我不能选择一个范围没有先选择工作表,因此行“sht.Activate”。唉,没有运气。
然后我想,也许是因为tbl是一个listobject,类型是错误的,所以我尝试使用临时字符串变量并将tbl.name保存到第一个,并使用该范围(tempvariable).select唉,没有运气。
我也尝试了硬编码表的名称:范围(“表名”)中进行选择,但没有工作要么...
我知道它的简单的东西,但我挂所以有人解释我错过了什么?
感谢您的建议!一个问题,你的方法选择整个表格,包括标题。是否有只选择表格数据的表格的选择方法?或者我是否需要手动查找表格数据的限制并复制该数据? –
是的,你会改为使用:ActiveSheet.ListObjects(tbl.Name).DataBodyRange.Select –
我也意识到,上面的代码是在sheet1上输入的。当我将它移动到一个模块时,行范围(tbl.name).select按我的预期工作。谢谢! –