2014-01-14 72 views
0

我對宏的經驗很少,而且在發現需要發佈我的問題之前,我一直在網上搜索很長時間。我的目標是填寫其他表格的信息。 我會將「合併文件」放在一個文件夾中,讓人們將他們填寫的問卷形式上傳到單獨的文件夾中,更深一層。運行時錯誤1004-無法找到工作簿(偶爾)

奇怪的問題是,有時它完美地填充整合文件,有時它根本沒有做任何事情。我得到一個運行時錯誤1004,說該文件無法找到。 它實際上提到了文件的確切名稱,但後來無法'找到'它。

任何幫助,將不勝感激。

親切的問候,

的Martijn

Sub LoopThroughDirectory() 

    Sheets("Data").Select 

    Application.ScreenUpdating = False 

    Dim FileNames() As String 
    Dim MyFile As String 
    Dim erow 

    MyFile = Dir(ActiveWorkbook.Path & "\Filled out Forms\") 

    Do While Len(MyFile) > 0 
     If MyFile = "Z. Master.xlsm" Then 
      Sheets("Candidate selection").Select 
      Exit Sub 
     End If 

     Workbooks.Open (MyFile) 
     Worksheets("Hidden Sheet").Range("B3:I13").Copy 
     ActiveWorkbook.Close 

     erow = Sheet1.Cells(Rows.count, 1).End(xlUp).offset(1, 0).Row 
     ActiveSheet.Paste Destination:=Worksheets("Data").Range(Cells(erow, 1), Cells(erow, 8)) 

     MyFile = Dir 
    Loop 

    Application.ScreenUpdating = True 

End Sub 
+1

你試過[調用DoEvents(http://support.microsoft.com/kb/118468)? – pnuts

+0

你可以做的一件事是嘗試調試代碼,以:1)找出引發錯誤的行,2)添加以發現「DoEvents」是否可以幫助(如果調試不會導致錯誤,那麼最有可能需要'DoEvents')。 –

+2

'Dir'只返回文件名,所以如果包含文件夾沒有被設置爲當前目錄,那麼只傳遞文件名到'Open()'將失敗。您應該將完整路徑傳遞給'Open()' –

回答

0

試一下這個 MyFile = Dir(Path & Filename)

相關問題