Excel 将工作表中一个表的最后一行复制/粘贴到另一个最后一行

Excel 将工作表中一个表的最后一行复制/粘贴到另一个最后一行,excel,vba,Excel,Vba,我的问题是目的地。复制的行直接转到另一个工作表中的同一行,而不是该工作表的最后一行 Sub Test() Dim data As Worksheet Dim table As Worksheet Dim lastRow As Integer Set data = Worksheets("Data Input") Set table = Worksheets("Data Tables") ActiveWorkbook.RefreshAll

我的问题是目的地。复制的行直接转到另一个工作表中的同一行,而不是该工作表的最后一行

Sub Test()

    Dim data As Worksheet
    Dim table As Worksheet
    Dim lastRow As Integer

    Set data = Worksheets("Data Input")
    Set table = Worksheets("Data Tables")

    ActiveWorkbook.RefreshAll
    Application.ScreenUpdating = False

    'Goes to last row containing data in sheet Data Input
    lastRow = data.Cells(Rows.Count, 1).End(xlUp).Row

    'Same as above but for Data Tables
    sidsteRow = table.Cells(Rows.Count, 1).End(xlUp).Row

    'Removes error msg when copy/pasting
    Application.CutCopyMode = False

    If data.Cells(lastRow, 4) <> "" Then

        data.Cells(lastRow, 1).Copy table.Cells(sidsteRow, 1)
        data.Cells(lastRow, 2).Copy table.Cells(sidsteRow, 2)
        data.Cells(lastRow, 3).Copy table.Cells(sidsteRow, 3)
        data.Cells(lastRow, 4).Copy table.Cells(sidsteRow, 4)
        data.Cells(lastRow, 6).Copy table.Cells(sidsteRow, 5)

    End If


    Application.ScreenUpdating = True


End Sub

它对我来说很好,但有一个错误:它应该是

sidsteRow = table.Cells(Rows.Count, 1).End(xlUp).Row + 1
否则,您只是粘贴到最后一行,而不是将其附加到目标的最后一行之后


如果您的意图是复制最后一行的顶部,那么它的工作原理与我的测试中的意图完全相同。

最好避免复制粘贴。因此,您可以简单地编写:table.cellssidstrow+1,1=data.cellsastrow,1