![]() |
Распарсить XLS и получить интересующие данные во внешний файл
Есть таблица xls с 5000+ строк следующего вида:
![]() Необходимо сделать интерфейс, чтобы пользователь мог ввести в поле интересующую его фамилию, нажать кнопку и получить файл (txt или же новый xls) с информацией об этом субъекте. Например, пользователь ввел "Герасимова" и получил на выходе файл с содержимым: ![]() Это можно реализовать на VBA, например? Каким образом? |
Упакуйте Ваш файл в архив. Прикрепите архив к сообщению.
|
Вложений: 1
Сделал
|
Вложений: 1
Набросал форму, некоторые тезисы по поводу функционала:
1. Пользователь вводит фамилию в текстовое поле 2. Нажимает кнопку Поиск записей 3. В текстбокс падают строки, где присутствует введенная фамилия 4. При желании, пользователь нажимает на кнопку Запись в файл, происходит экспорт |
Вложений: 1
Примерно так: Файл 109628.
Диапазон преобразован в список. Добавлена форма для фильтрации по выбранной/введённой фамилии, для экспорта отфильтрованного списка в новую рабочую книгу (её сохранение делать не стал). |
Цитата:
Макрос можно быстро запустить для другого подобного файла. |
bagfinder, а почему Ваши пользователи не используют списки?
Расскажите, как Вы предлагаете определять потребный диапазон? У нас есть ровно четыре варианта — «ручками» и «Selection» + «.UsedRange»/«.CurrentRegion». |
Цитата:
Ну и уровень владения excel у пользователя нулевой, так что, чем проще и очевиднее интерфейс, тем лучше. Цитата:
С VBA я не знаком, не знаю, что лучше. |
Цитата:
Цитата:
Цитата:
Ещё остаются вопросы с выбором конкретного рабочего листа, если их несколько. Цитата:
«ручками» — предлагается указать адрес диапазона, с которым будем работать. «Selection» — существующее выделение. Для простоты будем предполагать простое прямоугольное выделение на одном листе. «.UsedRange» — использованный диапазон на рабочем листе. От крайней левой верхней использованной ячейки до крайней правой нижней использованной ячейки. «.CurrentRegion» — заполненный диапазон, считающийся от текущего выделения. Проще всего его представить как прямоугольную область, ограниченную пустыми строками и столбцами по краям. Типичным является использование следующего сценария — выделить любую ячейку внутри диапазона и вызвать форму. Та начинает работать, например, с Selection.CurrentRegion. |
Цитата:
P.S. Рабочий лист один P.P.S. Первая строка - заголовки (Дата/Время, Фамилия и т.п.), остальное - данные. |
|
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Вложений: 1
Цитата:
Ну, вот как-то так: Файл 109638. Положите файл «Filter And Export.xls» в папку автозагрузки Excel (для Excel 2003 под Windows XP это будет по умолчанию папка «%UserProfile%\Application Data\Microsoft\Excel\XLSTART»). Горячая клавиша для вызова — «Ctrl-l» (раз у Вас всё равно списками не пользуются). |
Время: 16:08. |
Время: 16:08.
© OSzone.net 2001-