VBA-将数据从一张图纸复制到另一张图纸

VBA-将数据从一张图纸复制到另一张图纸,vba,excel,Vba,Excel,我正在尝试将数据从范围为D2:D的工作表“DATEV_RAB_Unberbindlich”复制到范围为B2:B的工作表“准备上载” 我希望找到最后一行的数据,然后将它们复制到另一张表中。我有以下代码: Sub CopyInvoiceNo() Dim ws, ws1 As Worksheet Dim lastrow As Long lastrow = .Cells(.Rows.Count, "D").End(xlUp).Row Set ws = Sheets("DATEV_RAB_U

我正在尝试将数据从范围为D2:D的工作表“DATEV_RAB_Unberbindlich”复制到范围为B2:B的工作表“准备上载”

我希望找到最后一行的数据,然后将它们复制到另一张表中。我有以下代码:

Sub CopyInvoiceNo()

Dim ws, ws1 As Worksheet
Dim lastrow As Long

lastrow = .Cells(.Rows.Count, "D").End(xlUp).Row

    Set ws = Sheets("DATEV_RAB_UNVERBINDLICH")
    Set ws1 = Sheets("Ready to upload")
    ws.Range("D2" & lastrow).Copy
    ws1.Range("B4").PasteSpecial xlPasteValues
    ws1.Activate

End Sub

但我收到错误消息无效或不合格的引用。您能告诉我,我做错了什么吗?

您的代码中有两个错误

在第3行,这不是在同一行中定义多个变量类型的正确方法。您必须定义它们中的每一个。 在第10行,假设您的最后一行是“20”。它会将范围设置为“D220”,这也不是您想要的

Sub CopyInvoiceNo()

Dim ws As Worksheet, ws1 As Worksheet
Dim lastrow As Long
Set ws = Sheets("DATEV_RAB_UNVERBINDLICH")
Set ws1 = Sheets("Ready to upload")

    lastrow = ws.Cells(Rows.count, 4).End(xlUp).Row
    ws.Range("D2:D" & lastrow).Copy
    ws1.Range("B4").PasteSpecial xlPasteValues
    ws1.Activate

End Sub

我还更改了在代码开头定义变量及其值。经过一点测试后,最后一行代码也没有在这里编码。现在它至少对我有用。

嗯,现在我明白了。谢谢你的建议!它很好用。