|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
31.01.2010, 11:09 | #1 |
Почти "Чайник"
Форумчанин
Регистрация: 09.06.2008
Сообщений: 134
|
Поиск файла по соддержимому и маске.
Макрос работал в 2003 а в 2007 Application.FileSearch убрали.
Как теперь можно средствами Экселя найти нужный файл. Вот то, что было. Код:
В конечном итоге интересует как находить файл по содержимому в 2007м экселе. |
02.02.2010, 19:44 | #2 |
Почти "Чайник"
Форумчанин
Регистрация: 09.06.2008
Сообщений: 134
|
|
02.02.2010, 20:46 | #3 |
Форумчанин
Регистрация: 21.08.2007
Сообщений: 292
|
Ответ такой - используйте рекурсию.
Код ищет все файлы Excel (*.xls) в директории C:\Temp\ и вложенных подпапках (C:\Temp\папка1\ и т.д.). Результат поиска выводится на активный лист в столбце А - путь, в столбце B - имя файла Код:
Последний раз редактировалось Pavel55; 02.02.2010 в 20:49. |
02.02.2010, 21:53 | #4 |
Почти "Чайник"
Форумчанин
Регистрация: 09.06.2008
Сообщений: 134
|
Всё это замечательно, кроме одного.
Application.FileSearch имеет свойство или параметр TextOrProperty = "Текст" который я хочу найти в той самой куче файлов. Как в 2007м найти текст в файле не открывая и не просматривая его? Может какая-нибудь из API функций? Ведь не могли-же они убрть из 2007го удобный поиск по содержимому, и ни чего не оставить взамен? |
02.02.2010, 23:32 | #5 |
Форумчанин
Регистрация: 21.08.2007
Сообщений: 292
|
Боюсь никак. FileSearch заблокирован в 2007. Таким образом нужно открывать каждый файл.
P.S. Может в Excel 2010 будет ) |
03.02.2010, 07:16 | #6 | |
Почти "Чайник"
Форумчанин
Регистрация: 09.06.2008
Сообщений: 134
|
Цитата:
Буду что-нибудь придумывать. Тем более что у меня область поиска текста в файле ограничена первой сотней ячеек во втором столбце. Думаю, что справлюсь. Спасибо за информацию. (в том числе и по рекурсии) |
|
05.02.2010, 18:31 | #7 |
Почти "Чайник"
Форумчанин
Регистрация: 09.06.2008
Сообщений: 134
|
Столкнулся с интересной проблемой при рекурсии.
Если процесс запущен на логическом диске, всё работает нормально. Если-же запустить в сетевой папке, то начинается путаница с путём вложенных папок. iFaile и iPath должны быть почти одинаковыми. Однако почему-то возникает странное несоответствие. И хотя при этом все файлы в подкаталогах находятся правильно, получить правильное полное имя для iFaile я почему-то не смог. Последний раз редактировалось КаМММ; 05.02.2010 в 18:42. |
05.02.2010, 18:46 | #8 |
Почти "Чайник"
Форумчанин
Регистрация: 09.06.2008
Сообщений: 134
|
Прикладываю то, что пытался сделать.
За кривизну моего програмного кода прошу не ругать. Пишу как умею. Вся система должна просматривать каталог с файлами, и если в каком-то из них во втором столбце находится искомый текст, то текст ячейки вместе с названием и путём файла вписывается на лист. Искомый текст берётся из ячейки C1 Вся система работает без открытия просматриваемых файлов. (прописывается ссылка на ячейку в искомом файле, и обновляется значение.) Вот какраз с формулой - ссылкой и возникают проблемы когда файл находится в сети. Последний раз редактировалось КаМММ; 05.02.2010 в 18:53. |
11.02.2010, 23:02 | #9 |
Почти "Чайник"
Форумчанин
Регистрация: 09.06.2008
Сообщений: 134
|
Добрый (день вечер ночь Нужное прочитать) Вот что получилось в итоге всех мучений. Жаль у меня нет экселя 2007, чтобы протестировать по полной программе. Код:
Вопрос: Как сделать быстрее работу этого кода. И извечный: Почему майкрософт такой ГАД? Убрал полезную функцию, из за чего весь этот код пришлось писать! Последний раз редактировалось КаМММ; 11.02.2010 в 23:09. Причина: Не поздаровкался сразу. |
16.02.2010, 00:27 | #10 |
Почти "Чайник"
Форумчанин
Регистрация: 09.06.2008
Сообщений: 134
|
Ещё раз всем здравствуйте.
По результатам проверки оказывается, что макрос находит не все строки, или не во всех файлах. Помогите ошибку в коде найти! Где я напутал? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск текста по маске | WinApi | Помощь студентам | 6 | 27.12.2009 01:17 |
Процедура поиска - необходимо организовать поиск по маске *.txt в папке Test | GvR | Общие вопросы Delphi | 3 | 04.11.2009 15:31 |
Поиск папки по маске | ForzaJuve | Общие вопросы Delphi | 9 | 20.06.2009 23:50 |
Поиск По маске | CoreFox | Общие вопросы Delphi | 11 | 21.02.2008 21:48 |