У меня есть старый макрос 2003 xls, который извлекает данные из всех файлов дампов Excel в подпапке типа «Входящие».Файлы генерируются ежедневно, и, насколько я могу судить по этому старому коду, Application.Find просматривает все файлы, которые он может найти в этой папке входящих сообщений, а затем просматривает их один за другим, чтобы отсортировать данные и правильно разместить их в главном.document.
Проблема, конечно, в том, что Application.Find используется и больше не существует в Excel, что требует использования старой версии Excel для выполнения этого макроса.Больно запускать старую версию для импорта данных, а затем новую версию для всех остальных нужд, поэтому я надеялся, что смогу получить некоторую помощь, чтобы заменить этот старый код новой функцией, которая выполняет ту же роль.
Я искал здесь и в других местах, чтобы функции людей могли найти x количество файлов в заданном месте и просматривать их один за другим, но я не настолько хорош, чтобы пытаться интегрировать эти более современные решения сэтот старый макрос, так как он уже имеет структуру для зацикливания, пока все результаты Application.Find не будут завершены.
Я попробовал подход Dir, но безуспешно, и мне не удалось получить filecount / arrayвсе происходит так, что он может просто работать через все, что находит в этой подпапке.
With Application.FileSearch
.NewSearch
.LookIn = inbox
.SearchSubFolders = False
.FileType = msoFileTypeExcelWorkbooks
If .Execute() > 0 Then
Set basebook = ThisWorkbook
For i = 1 To .FoundFiles.Count
Set mybook = Workbooks.Open(.FoundFiles(i))
Ожидаемый результат состоит в том, что это может безвредно зацикливаться при выполнении, поскольку далее в коде после прохождения данных в открытомдокумент, он попросит Next я и буду продолжать, пока не кончится filэс.Однако, поскольку Application.Find больше не существует, он просто останавливается в этой точке с ожидаемым сообщением об ошибке, если я не запустил версию 2003 года.
Любая помощь вообще будет очень признательна!