vba - Excel将listobject A(tableA)的几列中的数据一个接一个地复制到listobject B(tableB)的一列中

标签 vba excel listobject

我有一个包含几张工作表的工作簿,每张包括一个列表对象(一个表格)

我的目的是从不同的列表对象中获取数据并将其粘贴到另一个列表对象中。或者更准确地说,在另一个表中一个接一个地复制几个表的几列。

到目前为止,我正在尝试这个:

'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/

相关文章:

vba - 获取Excel表格中第一个单元格的行号和列号

vba - 有没有办法改变 VBA 编辑器自己的字体?

vba - 从 Excel 列表创建文件夹

java - Apache POI 和文件删除类

vba - 如何在没有任何数据行的情况下读取 Excel 表/ListObject 中的计算列的公式

performance - Excel 列表对象 VBA 性能错误?

excel - 将数据粘贴到表中而不覆盖数据 VBA

vba - 突出显示列中的空单元格

excel - 功能区 - 如何为每个组合框项目设置 ID?

excel - 从 VBS 运行时,MID 函数不执行任何操作