Особых проблем нет, но нужно определиться стратегически -
или
1. Берём данные из всех файлов определённой папки, файлы удаляем или потом эти файлы вручную удалите.
или
2. Берём данные из всех файлов определённой/текущей папки, кроме файла анализа и формы, просмотренные файлы переименовываем с переносом в другую папку.
В обоих случах файлы с другим расположением данных недопустимы, или нужно вводить в код дополнительные проверки по каким-нибудь признакам.
или
3. Выводим диалог выбора файлов, можно выбрать сразу много файлов, обработанные переименовываем или удаляем/переносим.
Тут пользователь сам ответственнен за выбор нужных файлов.
Код цикла по всем файлам папки прост - 4 строки нетто:
Sub tt()
Const SRC = "C:\Temp\Город\" 'папка с исходными файлами
fName = Dir(SRC & "*.xls")
Do While fName <> ""
'открытие SRC & fName, вместо этого для теста:
MsgBox SRC & fName
'Name SRC & fName As SRC & "obrabotano." & fName ' Move or rename file.
fName = Dir
Loop
End Sub
Правда, с таким кодом файлы нужно переносить в другую папку, иначе при переименовывании на месте первый файл анализируется 2 раза.
Открыли файл (можно с помощью GetObject), определили строку, куда будем помещать данные, копируем ячейки по одной, закрыли файл, переименовали, берём следующий.
При переименовании/перемещении можно в имя файла дописать дату/время операции, чтоб потом ориентироваться в "пространстве".
Предлагаю год.месяц.день.часминутасекунда.староеимяфайла.xls
Секунды можно не писать :)
Ну и основная проблема в коде - это рутина, большое количество данных вразброс.
С этим подозреваю придётся Вам бороться самому.