我希望将ListObject设置为另一个ListObject的精确副本,就像如何将范围设置为另一个范围的精确副本一样。这个是可能的吗?
我试过以下几种方法,但都没有用:
Set destinationWorksheet.ListObjects("tblPriorTable") = sourceWorksheet.ListObjects("Table1")重要的是不要删除"tblPriorTable“ListObject,因为我的工作簿中有公式,其中引用了ListObject和那些公式在ListObject被删除时中断的情况。我只想在根本上覆盖"tblPriorTable“的内容,使其与另一个ListObject相等,而不删除"tblPriorTable”。
发布于 2018-02-07 09:50:42
您可以使用这样的程序:
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注意,它假定两个列表对象的列数相同。
发布于 2018-02-06 20:01:35
ListObject没有.Copy方法,但是Range有:
Sub lksdhfs()
Dim r As Range
Set r = ActiveSheet.ListObjects(1).Range
r.Copy Range("g30")
End Sub

注意:
该副本产生另一个ListObject,而不仅仅是一堆单元格。
确保这两个表不重叠。
https://stackoverflow.com/questions/48650868
复制相似问题