Макрос перебирает все файлы в папке

#vba

#vba

Вопрос:

Я пытаюсь заставить макрос перебирать все файлы в папке и запускать для него макрос. Пока у меня есть:

 Sub ProcessFiles()
    Dim Filename, Pathname As String
    Dim Wb As Workbook

    Pathname = "C:TradingTICKPROBABDATACURRENT"
    Filename = Dir(Pathname amp; "*.xlsm")
    Do While Filename <> ""
        Workbooks.Open (Pathname amp; Filename)
        Application.Run "storage.xlsm!ALL"
        Filename = Dir()
    Loop


End Sub
  

Проблема в том, что после первой итерации происходит сбой. Я знаю, что это как-то связано со вторым макрокомандой, так как, если я выну его, откроются все файлы в папке.

Комментарии:

1. Я знаю, что это как-то связано со вторым макрокомандой , тогда, возможно, вам следует показать этот код?

2. @VincentRamdhanie Чего бы это дало? если OP удаляет это, то нет структуры цикла.

3. Кроме того, что вы имеете в виду под «сбоем»? Есть ли ошибка? И если да, то в какой строке возникает ошибка и какое конкретное сообщение об ошибке выдается?

4. Когда я говорю второй макрос, я имею в виду вложенный макрос, например, «Application.run»storage.xlsm! ВСЕ, это в приведенном выше коде

5. Я попытался удалить Fielname=Dir(), но это ничего не дало

Ответ №1:

Похоже, проблема была связана с кратковременной памятью Excel. Макрос выполнял большое количество копирования и вставки, и, похоже, он каким-то образом запрещал ему открывать следующий файл.

Я решил проблему, создав новый файл с тем же макрокомандой. Теперь он работает