将数据从多个工作簿复制到主文件

时间:2019-12-20 22:10:11

标签: excel vba

我有这个公式,提示错误1004,表示该文件可能已被删除,重命名或删除,但实际上文件就在那里。

此行出现错误:Workbooks.Open(MyFile)

Sub LoopThroughDirectory()
Dim MyFile As String 
Dim erow MyFile = Dir("C:\Users\congresojr.5\Desktop\Puller Sample\sample file\")

Do While Len(MyFile) > 0
If MyFile = "zzzPuller.xlsm" Then
Exit Sub
End If

Workbooks.Open (MyFile) Range("B11:J31").Copy ActiveWorkbook.Close

erow = RawPuller.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
ActiveSheet.Paste
Destination:=Worksheets("RawPuller").Range(Cells(erow, 2),
Cells(erow, 10))

MyFile = Dir

Loop

End Sub

1 个答案:

答案 0 :(得分:0)

Dir仅返回文件名。在Workbooks.Open调用中需要路径和文件名,以避免出现错误。

另外,避免依赖隐式或显式ActiveWorkbook

Dim wb as Workbook
Set wb = Workbooks.Open("C:\Users\congresojr.5\Desktop\Puller Sample\sample file\" & MyFile)

现在您可以使用wb

wb.Sheets(1).Range("B11:J31").Copy
...
wb.Close SaveChanges:=False

另外,请查看this question为何

Worksheets("RawPuller").Range(Cells(erow, 2), Cells(erow, 10))

有问题。