VBA - 将数据从一个工作表复制到另一个工作表

时间:2017-09-05 12:12:12

标签: excel vba excel-vba

我正在尝试将数据从“DATEV_RAB_UNVERBINDLICH”,范围D2:D复制到工作表“准备上传”,范围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

但我收到错误消息无效或不合格的参考。你能告诉我,我该怎么办?

1 个答案:

答案 0 :(得分:1)

代码中的两个错误

在第3行,这不是在同一行中定义多个变量类型的正确方法。你必须定义它们中的每一个。 在第10行,让我们说你的lastrow是" 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

我还改为在代码开头定义变量及其值。经过一些测试后,lastrow位也没有在这里编码。现在它至少对我有用。