У меня есть следующий код, где я пытаюсь изменить некоторые файлы Txt в определенной папке. Сначала я хочу проверить, работает ли Loop. Однако, когда я запускаю макрос, код может читать только первый файл, а затем появляется ошибка времени выполнения в strFileName = Dir(). Я не уверен, в чем проблема. Единственная проблема, о которой я могу думать, это то, что я перемещаю код между двумя модульными листами. Местоположение папки сохраняется в поле txt в Листе 1 книги Excel.Looping Through Txt Files with VBA - DIR() issue
Sub Txt_File_Loop()
Public TextFile As String
Dim FolderLocation As String
Dim strFielName As String
Dim SaveLocation As String
'Location is present in a Text box
FolderLocation = Sheets(1).FolderLocationTXTBX.Text
strFileName = Dir(FolderLocation & " \ * ")
Do Until strFileName = ""
TextFile = FolderLocation & "\" & strFileName
Module2.Macro1
strFileName = Dir() 'ERROR is Here
Loop
End Sub
Sub Macro1()
Dim x As String
Open TextFile For Input As #1
Do Until EOF(1)
Line Input #1, textline
x = x & textline
Loop
Close #1
MsgBox x
End Sub
Ухх .. как ваш код скомпилирован? Вам не хватает инструкции 'Loop' для закрытия' Do While ... 'У вас также есть строка' Open TextFile' * внутри * цикла, поэтому как она может знать, где End Of File ('EOF') является прежде чем открыть его? Ваша первая часть не является частью какой-либо подпрограммы. Существует некоторая ошибка, с которой ваша ошибка происходит на 'strFileName = Dir()' на основе кода, который вы предоставили ... – tigeravatar
'strFileName = Dir (FolderLocation &" \ * ")' вы имеете в виду 'strFileName = Dir (FolderLocation & \ ")'? И что дает вам 'debug.print FolderLocation'? – findwindow
Я хотел добавить оператор Loop в макрос1. – Dinks123