我有一个包含几张工作表的工作簿,每张包括一个列表对象(一个表格)
我的目的是从不同的列表对象中获取数据并将其粘贴到另一个列表对象中。或者更准确地说,在另一个表中一个接一个地复制几个表的几列。
到目前为止,我正在尝试这个:
'defining the names of the list objects
Dim OriginTable As ListObject
Set OriginTable = ThisWorkbook.Sheets("claims").ListObjects(1)
Dim destinationTable As ListObject
Set destinationTable = ThisWorkbook.Sheets("COMM").ListObjects(1)
'inserting one row in case the table is empty.
If destinationTabl.ListColumns(1).DataBodyRange Is Nothing Then
destinationTabl.ListRows.Add
End If
lastItem = destinationTable.ListColumns(1).DataBodyRange.Count+1
MsgBox ("I am going to insert in: ", lastItem)
originTable.ListColumns("comm").DataBodyRange.Copy Destination:=destinationTable.listcolumns(1).databodyrange.item(lastitem)
这不起作用。
原因是
destinationTable.listcolumns(1).databodyrange.item(lastitem)
不是列的最后一个单元格的范围,而是别的东西。我在玩 range()、.address 属性等,但无济于事地阅读了其他一些 stackoverflow 问题。
有人可以帮忙吗?
简而言之,获取范围的日期并将其从最后一列单元格中粘贴到另一个列表对象中
我试图避免使用 .select 因为选择总是有问题的。
最佳答案
你能用With换行然后使用DataBodyRange.Rows.Count
吗?获取列中的最后一个单元格?这里说明的原理:
Sub test()
With ActiveSheet.ListObjects(1).ListColumns(1).DataBodyRange
Debug.Print .Cells(.Rows.Count, 1).Address
End With
End Sub
关于vba - Excel将listobject A(tableA)的几列中的数据一个接一个地复制到listobject B(tableB)的一列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52035816/