0
我正在写一个循环遍历“源”工作表的宏,并且为列A中的每个值复制范围从模板工作表到目标工作表。在复制模板范围之后,我需要根据源工作表值更改目标工作表中的几个值。现在我试图让副本工作。复制失败,错误1004'由于“复制”区域和粘贴区域的大小不一样,因此无法粘贴信息。将范围复制到另一个工作表的底部
Sub CopyRangeFromOneSheetToAnother()
Dim iLastRow As Long
Dim wb As Workbook
Dim shtSource As Worksheet
Dim shtTemplate As Worksheet
Dim shtDest As Worksheet
Dim sResourceName
Dim rngCalcTemplate As Range
Set wb = ThisWorkbook
Set shtSource = wb.Sheets(1)
Set shtTemplate = wb.Sheets("res_tpl")
Set shtDest = wb.Sheets.Add
'--set range for copying. Hard-coded for now would be nice if it would auto shrink/expand
Set rngCalcTemplate = shtTemplate.Range("A2:M7")
'Find the last row (in column A) with data.
iLastRow = shtSource.Range("A:A").Find("*", searchdirection:=xlPrevious).Row
'--loop through source sheet and copy template range to dest for each
For iSourceSheetRow = 2 To iLastRow
sResourceName = shtSource.Cells(iSourceSheetRow, 1)
rngCalcTemplate.Copy shtDest.Range("A" & Rows.Count).End(xlDown)
Next
End Sub
你需要'Rows.Count'之前添加纸张太,'shtDest。范围(“A”&shtDest.Rows.Count).End(xlDown)'。否则,'rows.count'将在任何'ActiveSheet'上运行。不知道这是否会解决它,但它应该有所帮助。 (如果这不能解决问题,您只需将paste * to *范围调整为与复制的大小相同)。 – BruceWayne