Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Программирование, связанное с MS Office > Сложный поиск файлов


Автор: Mrak 1.6.2007, 15:57
Доброго времени суток!

Нужно реализовать на vba и вывести полученный результать в табицу экселя.
Имеется вот такая структура папок

km\zap\proekt\bank\pr
...
еще много таких же
...
km\td\proekt\bank\pr

Как найти все файлы раслоложенные только в папках bank? 
Очень надо, помогите пожалуйста )

Автор: RockClimber 1.6.2007, 20:20
К сожалению, сижу на ноуте с линухом. Дома экселя нет, на виндовую машину надо ставить, а сейчас немного не до того. Поэтому немного теории. Для поиска файлов в VBA используется объект FileSearch. Для начала объявляем переменную:
Код

Dim bankFiles as FileSearch

У объекта FileSearch есть несколько атрибутов, с помощью которых можно задать параметры поиска: папку поиска, расширение файлов, искать во вложенных папках и т. д. (На память названия атрибутов не помню, но в справке все было вроде)
Потом выполняем собственно поиск:
Код

bankFiles.Execute

Тут я не помню - execute это процедура или функция. Если функция, то строка должна выглядеть так:
Код

Dim found as Long
found=bankFiles.Execute

Переменная found будет содержать число найденных файлов.
После этого (опять провал в памяти) в один из атрибутов объекта FileSearch помещается список имен найденных файлов.
В цикле их можно обработать примерно так (надо использовать функцию, которая ищет подстроку в строке; ее название я тоже не помню smile ):
Код

For i=1 to found
    If <строка с полным именем файла содержит "\bank\"> Then
        Cells(r,1)=<имя файла>
        r=r+1
    End If
Next i

Переменная r задает номер строки, в которую будет выводиться имя файла, i - счетчик цикла. Их можно описать любым целым типом (Long, Byte и т. д.) Cells(x,y) - это ячейка экселя в строке x и столбце y.
Если до завтрашнего утра никто не напишет ничего более толкового, пойду ставить эксель...

Автор: SquarePants 2.6.2007, 14:51
Спасибо, мысль понятна, разберусь ))

Автор: RockClimber 2.6.2007, 20:54
SquarePants и Mrak - один человек??? smile 

Эксель я так и не поставил. В понедельник на работе освежу воспоминания...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)