将数据粘贴到表的末尾

时间:2018-03-21 17:51:15

标签: excel vba excel-vba ms-office

我是Excel中VBA的初学者,所以我希望我的例子有意义。我正在尝试编写一个脚本,该脚本将基于指定条件在工作簿中的一个工作表上复制一组数据,并将其粘贴到同一工作簿中另一个工作表上的指定表的下一个可用行。数据需要成为表格的一部分。

如果有帮助,表格是7列宽,从A列到G列。数据长度相同。

我的副本w /标准部分非常好,但不是粘贴部分。在下面的示例代码中,数据将粘贴到下一个可用行,但数据不是表的一部分。

Sub test_paste_to_table_end()
'
' test Macro
'

'
Claim_Input = InputBox("Type in the claim number :)")
Dim Cell As Range

With Sheets("Re-Sort")
    For Each Cell In .Range("A1:A" & .Cells(.Rows.Count, "G").End(xlUp).Row)
        If Cell.Value = Claim_Input And Cell.Offset(0, 6).Value = "No response by deadline" And Cell.Offset(0, 7).Value = "Cleveland" Then
            .Rows(Cell.Row).Copy Destination:=Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
        End If
    Next Cell
End With

End Sub

我根据我当前的知识尝试了不同的变体,包括指定表名。结果是相同的(粘贴在最后一行,但不是表的一部分。

Sub test_paste_to_table_end2()
'
' test Macro
'

'
Claim_Input = InputBox("Type in the claim number :)")
Dim Cell As Range
Dim LastRow As Long
LastRow = Sheets("Sheet1").ListObjects("TestTable").Range.Rows.Count

With Sheets("Re-Sort")
    ' loop column H untill last cell with value (not entire column)
    For Each Cell In .Range("A1:A" & .Cells(.Rows.Count, "G").End(xlUp).Row)
        If Cell.Value = Claim_Input And Cell.Offset(0, 6).Value = "No response by deadline" And Cell.Offset(0, 7).Value = "Cleveland" Then
             ' Copy>>Paste in 1-line (no need to use Select)
            .Rows(Cell.Row).Copy Destination:=Sheets("Sheet1").ListObjects("TestTable").Range(LastRow, "A").Offset(1, 0)
        End If
    Next Cell
End With

End Sub

任何指向我所忽略的内容都会有所帮助。

0 个答案:

没有答案