【发布时间】:2014-05-14 11:26:53
【问题描述】:
将多个工作簿中的工作表复制到当前工作簿中
您好,请问有没有人可以帮帮我?
我试图复制多个工作簿并将其保存到一个工作表中。 我有 2000 个不同的工作簿,它们的行数不同,单元格的数量是相同的,并且会发生变化,它们都在每个工作簿的第一张纸上。
我是这种东西的新手,所以我很感谢你能提供的所有帮助,我无法让它发挥作用。我正在使用 excel 2010
这是我在 atm 得到的:
Sub LoopThroughDirectory()
Dim MyFile As String
Dim erow
Dim Filepath As String
Filepath = “C:\test\”
MyFile = Dir("test\")
Do While Len(MyFile) > 0
If MyFile = "master.xlsm" Then
Exit Sub
End If
Range(Range("a1"), ActiveCell.SpecialCells(xlLastCell)).Select
Selection.Name = "PivotData"
Workbooks.Open (Filepath & MyFile)
Range("A2:AD20").Copy
ActiveWorkbook.Close
erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste Destination:=Worksheets("sheet1").Range(Cells(erow, 1), Cells(erow, 1))
MyFile = Dir
Loop End
Sub
【问题讨论】:
-
嘿,到目前为止你尝试了什么?
-
这是我目前得到的.. Sub LoopThroughDirectory() Dim MyFile As String Dim erow Dim Filepath As String Filepath = “C:\test\” MyFile = Dir("test\") Do While Len(MyFile) > 0 If MyFile = "master.xlsm" Then Exit Sub End If Range(Range("a1"), ActiveCell.SpecialCells_(xlLastCell)).Select Selection.Name = "PivotData" Workbooks.Open ( Filepath & MyFile) Range("A2:AD20").Copy ActiveWorkbook.Close erow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row ActiveSheet.Paste Destination:=Worksheets ("sheet1").Range(Cells(erow, 1), Cells(erow, 1)) MyFile = Dir Loop End Sub
-
这是一个很好的开始,很快就会有答案
-
您可以更新您的帖子以添加代码,而不是将其放在评论中。使用“代码”
{}按钮正确格式化。 -
我认为您的问题是正确限定变量。有关如何正确处理
Range Objects的方法,请参阅 THIS,这也适用于其他对象。
标签: excel merge excel-2010 multiple-databases vba