Итак, у меня есть этот код, который я нашел здесь: https://stackoverflow.com/a/10382861
И когда я впервые нашел его, я изменил его, чтобы фактически открыть файлы, которые он нашел:
Sub LoopThroughFiles()
Dim SourceFolder As String
SourceFolder = "C:\Users\Jeff\Downloads\IO\"
Dim StrFile As String
StrFile = Dir(SourceFolder & "*.xls")
Dim wb As Workbook
Do While Len(StrFile) > 0
Debug.Print StrFile
Set wb = Workbooks.Open(Filename:=StrFile)
StrFile = Dir
Loop
End Sub
Когда я впервые изменил этот код, он работал отлично и открывал мои файлы для меня.
Поэтому я решил немного поработать, немного почистить код, удалить лишние пробелы и т. Д.,однако теперь, когда я запускаю этот точно такой же код, он теперь говорит мне:
Ошибка времени выполнения "1004"
Не удается найти файл "Excelfile.xls"
Iя не перемещал файлы, я не менял пути, я не переименовывал файлы.Все точно так же ... и все же он не может найти файлы.Я также протестировал жесткое кодирование пути с той же ошибкой.
Одна вещь, которую я заметил, была интересной, даже если я вернусь к голому коду:
Sub LoopThroughFiles()
Dim StrFile As String
StrFile = Dir("C:\Users\Jeff\Downloads\IO\*.xls")
Do While Len(StrFile) > 0
Debug.Print StrFile
StrFile = Dir
Loop
End Sub
и просто добавьте Debug.Print Dir
сразу после Debug.Print StrFile
.Кажется, что StrFile и Dir читают неправильный файл в любой момент времени.
Первая распечатка - "file1.xls", а вторая распечатка - "file2.xls"
![enter image description here](https://i.stack.imgur.com/khC1M.png)
Просто не уверен, имеет ли это какое-либо отношение к этому.