Выкладываю небольшой инструмент, который родился на работе. Заказчик прислал списки имеющегося у него оборудования в Экселе -множество гигантских файлов по 5-6 миллионов строчек в каждом. Разумеется, такие объемы отнюдь не для Экселя, но других вариантов выгрузки у заказчика нет. По-хорошему, надо эту массу данных импортировать в MS Access, но корректно они импортироваться не захотели, а потребовали массу ручных исправлений форматов.
Следовательно, "работаем с тем, что есть". А работать надо - необходимо сравнивать имеющееся на руках оборудование комплектами с тем оборудованием, что числится у заказчика. По серийникам, например. А таблицы заказчика несортированы, верней, сортированы по дате поступления, то есть, для одного комплекта оборудования один серийник может быть в одном файле, другой-в другом, причем в каждом файле по нескольку вкладок. Если делать вручную, то для того, чтобы вытянуть данные по одному комплекту, надо открыть несколько файлов и по одному серийнику поискать в каждом, скопировать в отдельный файл строчки.
Каждый, кто занимался таким мартышкиным трудом (как говорят на Западе, "monkey job"), оценит страстное желание автоматизировать это хоть как-то.
Так и появился этот макрос.
Те данные, которые мы собираемся искать, мы копируем списком в первый столбец пустого файла, и даем этому столбцу заголовок того столбца, в котором будем искать, вот так
Макрос в каждом файле, на каждой странице в первой строчке будет искать заголовок "Серийник" и в найденном столбце будет искать данные, которые стоят в запросе от 2-й строчки до конца файла запроса
Сохраняете файл запроса, запускаете макрос с названием query_simple
Сначала макрос запрашивает, чтобы вы выбрали файл запроса,
потом - выберите те файлы, в которых ищете
В результате у вас создается файл, в который перенесены все строчки, в которых найдены данные в запросе.
Одним словом, качайте, пользуйтесь.
____________________________________________________________
Как установить макрос в Эксель видео (не мое)