Excel VBA使用lastrow范围将数据从一个工作簿复制到另一个工作簿
我有一个按钮,在工作簿中有一个数据透视表,名为“Warranty Template.xlsm”。我希望此按钮复制第一列数据(从A5开始),并将此列粘贴到另一个名为“QA Matrix Template.xlsm”的工作簿中。我希望复制的数据在列的最后一个空行结束,并且希望粘贴数据的范围也粘贴在从D12开始的第一个空行上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
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开始的数据上方有空单元格,因此我不确定这是否是导致问题的原因。。。