Excel VBA使用lastrow范围将数据从一个工作簿复制到另一个工作簿

Excel VBA使用lastrow范围将数据从一个工作簿复制到另一个工作簿,excel,vba,Excel,Vba,我有一个按钮,在工作簿中有一个数据透视表,名为“Warranty Template.xlsm”。我希望此按钮复制第一列数据(从A5开始),并将此列粘贴到另一个名为“QA Matrix Template.xlsm”的工作簿中。我希望复制的数据在列的最后一个空行结束,并且希望粘贴数据的范围也粘贴在从D12开始的第一个空行上 Sub InsertData() Dim wsCopy As Worksheet Dim wsDest As Worksheet Dim lCopyLastRow As Lo

我有一个按钮,在工作簿中有一个数据透视表,名为“Warranty Template.xlsm”。我希望此按钮复制第一列数据(从A5开始),并将此列粘贴到另一个名为“QA Matrix Template.xlsm”的工作簿中。我希望复制的数据在列的最后一个空行结束,并且希望粘贴数据的范围也粘贴在从D12开始的第一个空行上

Sub InsertData()


Dim wsCopy As Worksheet
Dim wsDest As Worksheet
Dim lCopyLastRow As Long
Dim lDestLastRow As Long

  'Set variables for copy and destination sheets
  Set wsCopy = Workbooks("Warranty Template.xlsm").Worksheets("PivotTable")
  Set wsDest = Workbooks("QA Matrix Template.xlsm").Worksheets("Plant Sheet")

  '1. Find last used row in the copy range based on data in column A
  lCopyLastRow = wsCopy.Cells(wsCopy.Rows.Count, "A5").End(xlUp).Row

  '2. Find first blank row in the destination range based on data in column A
  'Offset property moves down 1 row
  lDestLastRow = wsDest.Cells(wsDest.Rows.Count, "D12").End(xlUp).Offset(1).Row

  '3. Copy & Paste Data
  wsCopy.Range("A5" & lCopyLastRow).Copy _
    wsDest.Range("D12" & lDestLastRow)

End Sub
我得到下标错误:“1004”,我不知道为什么。它与我的
lCopyLastRow
lDestLastRow
变量有关。如果我设置了静态范围,代码就会工作,但我需要这些范围是动态的。

Sub InsertData()
将wsCopy设置为工作表,将wsDest设置为工作表
暗淡的星星和长的星星一样,长的星星和长的星星一样
'为副本和目标工作表设置变量
设置wsCopy=工作簿(“保修模板.xlsm”)。工作表(“数据透视表”)
设置wsDest=工作簿(“QA矩阵模板.xlsm”)。工作表(“工厂工作表”)
'1.根据A列中的数据查找复制范围中最后使用的行
lCopyLastRow=wsCopy.Cells(wsCopy.Rows.Count,1).End(xlUp).Row
'2.根据A列中的数据查找目标范围中的第一个空行
'偏移属性下移1行
lDestLastRow=wsDest.Cells(wsDest.Rows.Count,4).End(xlUp).Offset(1,0).Row
'3.复制并粘贴数据
wsCopy.Range(“A5:A”和lCopyLastRow).Copy_
wsDest.范围(“D”和lDestLastRow)
端接头

lDestLastRow=wsDest.Cells(wsDest.Rows.Count,“D12”).End(xlUp).Offset(1)。行
需要一列作为第二个参数,而不是单元格。将“D12”更改为“D”并将“A5”更改为“A”,这应该可以修复删除
5
12
wsCopy.Range(“A5”和lCopyLastRow)。复制需要为“A”&lCopyLastRow已将“D12”更改为“D”,将“A5”更改为“A”,并且不再出现错误。但是,当我运行宏程序时,没有复制/粘贴数据。从复制的数据到目标范围内的D12,在A5开始的数据上方有空单元格,因此我不确定这是否是导致问题的原因。。。