【发布时间】:2019-11-10 04:36:40
【问题描述】:
我正在尝试将多张工作表中的内容复制到最后一张工作表(我们称之为“报告”工作表),其中工作表的内容从前一张工作表内容之后的第一个空闲行开始复制。
我正在使用 for 循环转到每个工作表并复制我需要的范围并将其粘贴到报告工作表,但我得到:
运行时错误 1004:“应用程序定义或对象定义错误”
我已经尝试更改复制/粘贴内容的方式,但仍然无法正常工作 (copy and paste special; destination range.value = source range.value; select; ...)。
你知道发生了什么吗? 提前感谢您的帮助!
Sub final_data()
Dim list_end, last_line, h, first_line_range, last_line_range As Integer
Dim sht_qty As Integer
h = 1
i = 2
list_end = 1
sht_qty = Application.Sheets.Count
For h = 1 To sht_qty
If Workbooks("Testes2").Sheets(h).Name <> "Report" Then
last_line = Workbooks("Testes2").Sheets(h).Range("A1").End(xlDown).Row
first_line_range = list_end + 1
last_line_range = last_line + list_end - 1
'the error is on the next line
Workbooks("Testes2").Sheets(h).Range("A2:I" & last_line).Copy Destination:=Workbooks("Testes2").Sheets("Report").Range("A" & first_line_range & "I" & last_line_range)
Else
End If
Next h
End Sub
【问题讨论】:
-
请阅读我对您收到的答案的评论。使用
first_line_range将导致来自每个源工作表的数据一次又一次地粘贴到目标工作表上的相同范围内。