【发布时间】:2020-12-11 21:25:38
【问题描述】:
我有一个“主文件”,我想从测试文件夹中的多个 Excel 工作簿中复制数据。
我做了一个宏,它打开每个文件并粘贴到主文件中。
它每次都在主文件中创建一个单独的工作表。
我希望它在找到主文件的最后一行后将数据粘贴到同一张表中。
Copy to clipboard
Sub ConslidateWorkbooks1()
Dim FolderPath As String
Dim Filename As String
Dim Sheet As Worksheet
Application.ScreenUpdating = False
FolderPath = Environ("userprofile") & "\Desktop\Carrier\Test\"
Filename = Dir(FolderPath & "*.xls*")
Do While Filename <> ""
Workbooks.Open Filename:=FolderPath & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
Application.ScreenUpdating = True
End Sub
【问题讨论】:
-
不要使用
Sheet.Copy,而是查看Range.Copy或其他Range方法来复制数据。Sheet.Copy是每次创建新工作表的行。将Range复制到工作表后,只需找到lastRow即可知道将下一组数据复制到何处。