如何使用列表行将一个表行复制到另一个表?

问题描述 投票:0回答:1

我正在尝试从不同的表中复制数据行,通常我会设置一个复杂的设置计算行和列以及几个级别的循环。

但是,现代的方法似乎是使用列表行。我尝试遍历https://www.thespreadsheetguru.com/blog/2014/6/20/the-vba-guide-to-listobject-excel-tables

上始终引用的指南

但是我似乎似乎错过了这个“ sometable.listobject(1).rows = differentable.listrow(1).rows” ...

我的代码

Sub GenerateOverview()
Dim MainWs As Worksheet
Set MainWs = Worksheets("Overview")
Dim mainTbl As ListObject
Set mainTbl = MainWs.ListObjects(1)

' Later add for each sheet ----

Dim ws As Worksheet
Set ws = Worksheets("ABD")   ' ABD to be replaced with activesheet.name LATER
Dim tbl As ListObject
Set tbl = ws.ListObjects(1)

Dim TopXRange As Integer
TopXRange = 10  ' to be changed to user defined range

Dim i As Integer
i = 0

For i = 1 To TopXRange
    mainTbl.DataBodyRange.Rows(i) = tbl.DataBodyRange.Rows(i)
      ' THIS only produces empty cells on maintbl and not the content from tbl. 
Next i

' end for each sheet ----

End Sub

有什么建议吗?

我的任务的工作解决方案。.

Sub GenerateOverview()
Dim MainWs As Worksheet
Set MainWs = Worksheets("Overview")
Dim mainTbl As ListObject
Set mainTbl = MainWs.ListObjects(1)

Dim ws As Worksheet
Dim TopXRange As Integer
TopXRange = 10
Dim i As Integer
i = 1
Dim tbl As ListObject
Dim newI
Dim mainRows As Integer

For Each ws In ThisWorkbook.Worksheets

    If ws.Name = "Overview" Then GoTo skip

    Set ws = Worksheets(ws.Name)
    Set tbl = ws.ListObjects(1)

    mainRows = mainTbl.ListRows.Count
    If mainRows = 0 Then mainRows = 1

    For i = newI To TopXRange

        mainTbl.ListRows.Add (mainRows)
        mainTbl.ListRows(mainRows).Range.Value = tbl.ListRows(i + 1).Range.Value

    Next i

i = mainTbl.ListRows.Count

skip:
Next
End sub 
excel vba
1个回答
1
投票

仍不确定我是否遵循。在传输之前,您可能需要在第二张表中插入一行。像这样的作品:

Sub x()

Dim t1 As ListObject, t2 As ListObject

Set t1 = Sheet1.ListObjects("Table1")
Set t2 = Sheet1.ListObjects("Table2")

t2.ListRows.Add (3) 'insert new row 3 into second table
t2.ListRows(3).Range.Value = t1.ListRows(4).Range.Value 'transfer to new row from first table

End Sub
© www.soinside.com 2019 - 2024. All rights reserved.