我想将ListObject设置为另一个ListObject的精确副本,就像您可以将范围设置为另一个范围的精确副本一样。这可能吗?
我尝试了以下但是没有用:
Set destinationWorksheet.ListObjects("tblPriorTable") = sourceWorksheet.ListObjects("Table1")
重要的是" tblPriorTable" ListObject不能删除,因为我的工作簿中有公式引用ListObject,并且当ListObject被删除时这些公式会中断。我只想基本上覆盖" tblPriorTable"的内容。等于另一个ListObject而不删除" tblPriorTable"。
答案 0 :(得分:2)
ListObject
没有.Copy
方法,但Range
有:
Sub lksdhfs()
Dim r As Range
Set r = ActiveSheet.ListObjects(1).Range
r.Copy Range("g30")
End Sub
注:
副本产生另一个ListObject
,而不仅仅是一堆单元格。
确保两个表格不重叠。
答案 1 :(得分:2)
您可以使用以下程序:
Sub Copy_Contents(FromTable As ListObject, ToTable As ListObject)
With ToTable
If Not .DataBodyRange Is Nothing Then
.DataBodyRange.ClearContents
End If
.Range(2, 1).Resize(FromTable.ListRows.Count, FromTable.ListColumns.Count).Value = FromTable.DataBodyRange.Value
End With
End Sub
请注意,它假定您的两个列表对象具有相同的列数。