我有这个公式,提示错误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
答案 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))
有问题。