|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.07.2014, 14:41 | #1 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 226
|
Получение имён листов из закрытых книг
Добрый день уважаемые!
Задачка у меня в том чтобы вернуть имя файла если в данном файле содержится искомый текст, просмотрев все файлы которые есть в папке. Подробнее: есть функция (ниже) для получения значения из закрытой книги. Пишу макрос который перебирает все книги в папке и если в каком-то из файлов в любом из листов в ячейке C4 встретится искомый текст, то он вернет его имя. Весь затык в том как прописать в данном случае поиск во всех листах файла... Подскажите, пожалуйста. Код:
Код:
|
10.07.2014, 14:44 | #2 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 226
|
Названия листов в закрытых книгах конечно не подчинены какой-либо логике (всегда разные), а перебрать надо все... Поэтому то что я написал выше не работает..(
|
10.07.2014, 15:51 | #3 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Открывайте в цикле файлы, цикл по листам (рабочим!), смотрите ячейку.
Если делать с getobject() - будет незаметно и быстро. Но иногда оно не работает, нужно проверять на файлах.
webmoney: E265281470651 Z422237915069 R418926282008
|
10.07.2014, 16:01 | #4 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 226
|
Спасибо! С getobject еще не имел дело, сейчас поищу, попробую...
|
10.07.2014, 16:03 | #5 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
а Вы полагаете, что ExecuteExcel4Macro не открывает книгу, а забирает данные из книги как-то по другому?
если уверены - можете продолжать эксперименты, а нет - откройте книги по очереди и переберите содержимое С4 всех листов.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
10.07.2014, 16:16 | #6 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 226
|
Я не гуру в VBA, мягко говоря, поэтому уверенности нет ни в чем..)) считал что ExecuteExcel4Macro не открывает книги.. Это не так? Если это не так, то конечно попытаюсь перебрать книги и листы...
|
11.07.2014, 05:46 | #7 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Любой способ получения значений из ячеек рабочего листа закрытой книги будет открывать файл (явно, или нет). Очень жаль, что разработчики Excel "выбросили" метод "FileSearch", который мог "в лоб" решить Вашу задачу, т. е. определить файл, содержащий искомое значение. Приходится решать по-другому. Например, так:
Код:
Что делать при обнаружении совпадений, автору лучше знать. Макрос просто выведет сообщение с именем искомой книги.
Чем шире угол зрения, тем он тупее.
|
11.07.2014, 09:22 | #8 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 226
|
Спасибо, SAS888! Реально жаль что в эксель невозможно сделать такое, вроде бы, простое действие без открытия книги... У меня книги очень "тяжелые", на их открытие тратится уйма времени. Да еще сообщение об обновлении связей выскакивает почему-то... Хотя я уже все что можно отключил (ScreenUpdating, DisplayAlerts, EnableEvents). Почему так, не подскажете?
|
11.07.2014, 14:02 | #9 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Чем шире угол зрения, тем он тупее.
|
|
11.07.2014, 15:12 | #10 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 226
|
Кому интересно - удалось таки решить задачу как хотел. Имена листов можно запросить не открывая книги (через ADODB), потом методом ExecuteExcel4Macro вытащить нужные данные так же не открывая книг. Работает быстро, на 6 файлов (в каждом более 30 листов), тратит не больше 2 секунд.
Выкладываю код, он правда под мои цели заточен, но принцип кто захочет поймёт.. Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обьединение листов из закрытых книг | Extril | Microsoft Office Excel | 31 | 28.11.2013 12:55 |
Получение имён, отправка ID. Как правильно обработать? | Jopses | JavaScript, Ajax | 0 | 02.02.2013 02:54 |
Макрос аля ВПР для формирования свода из закрытых книг | MaxxVer | Microsoft Office Excel | 15 | 28.08.2012 12:02 |
Получение данных из множества закрытых книг книг | hardkain | Microsoft Office Excel | 1 | 27.09.2011 20:18 |
копирование листов из закрытых книг | mephist | Microsoft Office Excel | 4 | 10.07.2009 17:18 |