Здравствуйте, уважаемые форумчане. Нужна помощь в макросе.
Придумал я себе такую задачу: в папке есть разные прайсы, они удаляются и добавляются. В каждом файле в определенной строке стоят названия заказов с указанием, оплачены или нет. Надо получить список файлов в папке с указанием для каждого файла количества ячеек, содержащих определенный текст.
Нужно получить такой файл Прайсы-заказы.xlsm
в колонке А = список файлов в папке поиска, в колонке В количество ячеек к конкретном файле в определенной строке на нужном листе, которые содержат текст опл
Так как в каждом прайсе номер строки и имена листов с названиями заказов разные, пришлось сделать справочник, в котором указаны эти данные для каждого прайса
Я смог написать макрос, который выводит список файлов в папке.
НО если файл с макросом находиться в той же папке, то выводиться и его название. Поэтому файл с макросом лежит в другой папке, а в макросе жестко прописано название папки, что неудобно, поэтому желательно брать путь к папке из файла
Код |
---|
Sub ListFilesInFolder() Dim folderPath As String, fileName As String Dim fileNum As Integer Dim rowNum As Long ' Путь к папке folderPath = "C:\Прайсы" ' Очищаем предыдущий список (если есть) Columns("A").ClearContents ' Задаем начальную строку для вывода списка rowNum = 1 ' Получаем первый файл в папке fileName = Dir(folderPath & "\*.*") ' Пока есть файлы в папке Do While fileName <> "" ' Записываем имя файла в ячейку Cells(rowNum, 1).Value = fileName ' Увеличиваем номер строки для следующего файла rowNum = rowNum + 1 ' Получаем следующий файл fileName = Dir() Loop ' Автоматически подстраиваем ширину столбца Columns(1).AutoFit ' Выводим сообщение об успешном завершении MsgBox "Список файлов сформирован." End Sub |
Однако дальше не получается.
Можете помочь с макросом, который делал бы следующее:
вывести список всех файлов в папке, указанной в файле-примере в E1
для каждого прайса ищет в ячейках строки (ее номер в столбце I), находящейся на листе (название в столбце J) все ячейки, содержащие текст из ячейки E2. Надо учитывать, что в ячейках строки могут разные типы данных, а также просто пустые ячейки
выводит общее количество таких ячеек (фактически количество оплаченных заказов в конкретном прайсе) в столбце B, напротив соответствующего прайса.