Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: GWolf от 06.09.2018, 15:20

Название: Поиск фразы "Товар (Услуга)" в счетах на оплату функцией .Find
Отправлено: GWolf от 06.09.2018, 15:20
Добрый день, друзья!
В архиве пример.
Задача: В папке находятся файлы - Счета на оплату. Нужно открыть каждый файл и найти в нем блок "Товар (Услуга)"
Решение: Использовал функцию Find. Но, увы. Если при первом открытии файла со счетом все находит и показывает, то при открытии последующих файлов говорит, что ничего не нашла. Хотя должна бы найти.
Знаю, что решение есть. Но, моих знаний не хватает. Вот и обращаюсь к вам, друзья.
Помогите разобраться.

Спасибо!
Название: Re: Обработка счетов и .Find
Отправлено: boa от 06.09.2018, 16:40
Добрый день,
Много правок сделал, поэтому лучше смотрите в файле.
А вкратце:
1. основная ошибка - работая с несколькими файлами, игнорируете абсолютные ссылки;
2. непосредственно по Финду - не надо заставлять его бегать по всему листу, если можно обратиться лишь к пользовательскому диапазону Usedrange;
3. используйте Option Explicit, что бы правильно объявлять переменные и не лишним будет очищать все объектные переменные перед окончанием работы функции.
Название: Re: Обработка счетов и .Find
Отправлено: vikttur от 06.09.2018, 17:58
Цитата: GWolf от 06.09.2018, 15:20
Решение: Использовал функцию Find. Но, увы.
Если "увы" - зачем указывать функцию в названии темы? А вдруг с ней не получится? Без решения оставаться?
Название должно отражать суть задачи.

По задаче: может быть, данные загонять в массив и там искать (пример не смотрел)
Название: Re: Обработка счетов и .Find
Отправлено: GWolf от 07.09.2018, 14:30
Доброго времени суток, друзья!
Воспользовался советом мудрого boa
Цитата: boa от 06.09.2018, 16:40
лучше смотрите в файле.
В итоге все заработало. Помог мне и уважаемый vikttur.
Спасибо вам!

На скрепке прикладываю то, что получилось.