Как известно, в VBA 2007 убрали (временно, но нет ничего более постоянного...) FileSearch. Чем заменить, кто посоветует? Dir не слишком удобен, даже очень неудобен...
А чем неудобен? -------------------------- iPath = "C:\Temp\" iFileName = Dir(iPath & "*.xls") Do While iFileName <> "" 'тут что-то делаете с каждым файлом, iFileName = Dir 'передача названия другого файла Loop --------------------------- как вариант: А если сделать в 2003, а использовать в 2007? По-моему FileSearch есть в 2007, только к нему доступ прикрыли, значит работать должен?
zador, этот вариант тоя знаю, только неудобный он - неясно, сколько в папке файлов, какой размерности переопределять массив и ещё кое каких атрибутов нет. Вот мне и интересно, есть ли что нибудь похожее на FileSearch... В том то и проблема, что всё сделанное на 2003 не идёт в 2007, стал бы я огород городить... Убрали и заблокировали.
задействуй объект FileSystemObject и далее функцию проверки наличия файла FileExists вот к примеру эта функция вернет в текстовом значении имя файла которое было в параметре с постфиксом о его существовании Function Report_File_Search(FileName) Dim fso, msg Set fso = CreateObject("Scripting.FileSystemObject") If (fso.FileExists(FileName)) Then msg = FileName & " существует." Else msg = filespec & " не существует." End If Report_File_Search = msg End Function или вот функция которая вернет количество файлов в папке Function Report_File_Count(FileName) Dim fso, msg, folder Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder("C:\") msg = folder.Files.Count Report_File_Count = msg End Function а вообще объект FileSystemObject настолько обширен что я и не знал о существовании FileSearch, как то не нужен был.
RedFraer, ну, вообще то обошёлся Dir. Просто количество файлов мне не очень интересно, интересны их имена.
Хочется задать сокраментальный вопрос - А в ОпенОффисе эта функция работает ? Слыхал, что ООО полностью совместим с ВБА.