Зацикливание через файлы Txt с использованием проблемы VBA – DIR ()

У меня есть следующий код, где я пытаюсь изменить некоторые файлы Txt в определенной папке. Сначала я хочу проверить, работает ли Loop. Однако, когда я запускаю макрос, код может читать только первый файл, а затем появляется ошибка времени выполнения в strFileName = Dir (). Я не уверен, в чем проблема. Единственная проблема, о которой я могу думать, это то, что я перемещаю код между двумя модульными листами. Местоположение папки сохраняется в поле txt в Листе 1 книги Excel.

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 

Взгляните на эти изменения. Кажется, они исправляют несколько вещей и хорошо проходят.

 Option Explicit Sub Txt_File_Loop() Dim FolderLocation As String Dim strFileName As String Dim SaveLocation As String 'Location is present in a Text box FolderLocation = Sheets(1).FolderLocationTXTBX.Text 'Environ("TMP") strFileName = Dir(FolderLocation & "\*.txt") Do Until strFileName = "" Debug.Print FolderLocation & "\" & strFileName Module2.Macro1 FolderLocation & "\" & strFileName strFileName = Dir() 'ERROR is Here Loop End Sub Sub Macro1(sFPFN As String) Dim x As String, textline As String Debug.Print sFPFN Open sFPFN For Input As #1 Do Until EOF(1) Line Input #1, textline x = x & textline Loop Close #1 MsgBox x End Sub 

Я передал имя папки и имени файла как параметр строкового типа. Кроме того, я не знаю, почему у вас были дополнительные пробелы в (FolderLocation & " \ * " , я затягивал это. Было несколько ошибок и необъявленных переменных, которых можно избежать с помощью Option Explicit ¹ в верхней части модуля введите код стандартного отступа с кодом. Это, безусловно, улучшает читаемость, если ничего другого.


¹ Настройка Требовать декларацию переменных в инструментах VBE ► Опции ► Страница свойств редактора помещает оператор Option Explicit в начало каждого вновь созданного кодового листа. Это позволит избежать ошибок глупого кодирования, таких как орфографические ошибки, а также повлиять на использование правильного типа переменной в объявлении переменной. Переменные, созданные на лету без объявления, представляют собой тип варианта / объекта. Использование Option Explicit широко считается «лучшей практикой».

  • Excel VBA Userform Textbox - выделение изменений, сделанных в разных цветах шрифта
  • Excel Noob Скопировать ячейку Excel в текстовое поле HTML
  • Как использовать данные, введенные в пользовательскую форму в основном модуле
  • Получение текста из хеш-таблицы текстовых полей
  • Неверное текстовое поле в форме VBA
  • Написание кода / макроса Excel VBA для заполнения текстовых полей Powerpoint с значениями ячейки Excel
  • Использование пользовательской формы VBA в Excel 2011 на Mac (запрограммировано в Windows): текстовое поле не работает
  • Как перенести данные из TextBox в формулу в другом текстовом поле
  • сохранение данных в текстовом поле для Excel в vb.net
  • Excel VBA; UserForm, запуск одного фрагмента кода для разных значений TextBox
  • Скопировать и вставить содержимое из текстового поля в диапазон ячеек рабочего листа?
  • Interesting Posts

    Перезапись VBA Для более эффективного и быстрого цикла

    Как написать формулу в ячейке excel 2010, которая возвращает ответ на основе трех разных условий?

    Удаление нежелательной ячейки Javascript из таблицы

    Разбор CSV-файла, где инкапсулятор в содержимом не удаляется должным образом

    VBA Excel конвертирует строку «/» в раздел и другие

    Позиционирование динамических флажков VBA

    Проверка, если выбранная ячейка находится в определенном диапазоне

    Обновить данные XML из Интернета в Excel

    Пользовательский параметр в Access для выбора уникальной пути к файлу для исходных данных Excel

    Как написать ячейку Excel рядом с выбранной ячейкой?

    Маркировка отображает две серии данных с использованием одинаковых ссылочных ячеек на нескольких листах

    Excel – формула массива с пробелом

    SpreadSheetGear – чтение уникальных значений из столбца Excel

    Как пропустить некоторые строки кода на основе того, была ли я выбрана ячейка в Row3 или нет?

    Используйте с .open для чтения списка файлов xls для копирования в одну книгу с несколькими листами

    Давайте будем гением компьютера.