#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. Макрос выполнял большое количество копирования и вставки, и, похоже, он каким-то образом запрещал ему открывать следующий файл.
Я решил проблему, создав новый файл с тем же макрокомандой. Теперь он работает