VBA - 复制,粘贴然后从旧表中删除

VBA - 复制,粘贴然后从旧表中删除

我有一张工作表,允许用户粘贴数据,然后将其粘贴到工作簿中驱动数据透视表的隐藏工作表中。这是通过命令按钮完成的。

我的代码选择范围中的数据直到最后一行,然后将其粘贴到另一张工作表中没有数据的下一行。然后我尝试在上传完成后从上传表中删除数据。除了删除数据之外,一切都正常。不知道哪里出了问题。我也尝试过使用“剪切”而不是复制,但结果是一样的。如果能得到一些帮助,我将不胜感激。

Sub TestingPaste()

    Application.ScreenUpdating = False
    Dim lst As Long

    Sheets("Upload Data").Range(Range("A2:N2"), Range("A2:N2").End(xlDown)).Copy
    With Sheets("Test")
        lst = .Range("A" & Rows.Count).End(xlUp).Row + 1
        .Range("A" & lst).PasteSpecial xlPasteColumnWidths
        .Range("A" & lst).PasteSpecial xlPasteValues
        Sheets("Upload Data").Range(Range("A2:N2"), Range("A2:N2").End(xlDown)).Clear
    End With

    Application.ScreenUpdating = True

End Sub

答案1

谢谢大家。@BruceWayne,谢谢你的建议。我采纳了你的一些建议,但发现在子版块完成后,它会将用户留在“测试”表上。此后,我添加了将 Sheets("Upload Data").Select用户返回到上传表的功能。以下是最终结果,供感兴趣的人参考。

Dim lst As Long

Sheets("Upload Data").Range(Range("A2:N2"), Range("A2:N2").End(xlDown)).Copy
With Sheets("Test")
    lst = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & lst).PasteSpecial xlPasteColumnWidths
    .Range("A" & lst).PasteSpecial xlPasteValues
    Sheets("Upload Data").Range(Sheets("Upload Data").Range("A2:N2"), Sheets("Upload Data").Range("A2:N2").End(xlDown)).Clear
End With

    Sheets("Upload Data").Select

Application.ScreenUpdating = True

End Sub

相关内容