У меня небольшая проблема с функцией Loop для открытия файлов в каталоге. Найдите код ниже:
'Build the complete folder path:
strTargetFolder_Batch = "I:\PerfTeam"
strTargetFolder_Batch = strTargetFolder_Batch & strMonthNo & " " & strMonthName & " " & strYear & "\" & "Attribution - Draft"
If Right(strTargetFolder_Batch, 1) <> "\" Then
strTargetFolder_Batch = strTargetFolder_Batch & "\"
End If
If Not CreateFolder(strTargetFolder_Batch) Then
MsgBox "Unable to create the folder:" & vbCrLf & strTargetFolder_Batch, vbExclamation
Else
End If
FolderPath = strTargetFolder_Batch
'Sets Parameters to Open the file
MyFolder = FolderPath 'location of files
MyExtension = "*.xlsx*"
MyFile = Dir(MyFolder & MyExtension)
Do While MyFile <> "" 'will start LOOP until all files in MyFolder have been looped through
Set oWbk = Workbooks.Open(MyFolder & "\" & MyFile)
*Batch Run is a Boolean function*
'*** 1. Calls Import Data Macro, which Imports the Data ***'
Call Import_new_data(Batch_Run, oWbk)
'*** 2. Calls Data Collector Macro, which Analyses the Data ***'
Call Data_Collector(Batch_Run)
'*** 3. Calls Report Production Macro, which Produces Report ***'
Call Report_Production_Sub(Batch_Run)
ContinueLoop:
MyFile = Dir
'**^^ Here is where the Macro breaks after completing a full first iteration** !
Loop
Что по сути делает макрос, он выбирает данные из открытого файла, закрывает файл и затем анализирует его, прежде чем создавать из него отчет. Затем он должен перейти ко второму файлу в папке и выполнить ту же операцию.
В то время как первый файл открывается и анализируется должным образом, возникает проблема при переходе ко второму файлу. Переменная MyFile на самом деле выбирает файл «Ghost» с именем «..», который затем, конечно, выдает ошибку, поскольку он не существует. Проведя некоторые исследования, которые я обнаружил, это может быть связано с путем к каталогу.
Любая помощь будет очень признательна!