|
Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2010 - [решено] Поиск строк |
|
|
2010 - [решено] Поиск строк
|
Пользователь Сообщения: 50 |
Есть книга xls (можно использовать и xlsx, если надо).
В ней множество листов. На каждом листе располагается форма учёта техники: то есть некая шапка и самое главное список техники (карточка учета малоценных и быстроизнашивающихся предметов - Типовая межотраслевая форма № МБ-2). Далее есть второй xls файл - выгрузка из 1С, в котором Наименование, Номер инвентарный и Количество. Что я хочу. Я хочу, чтобы каждая позиция из второго файла сравнивалась по инвентарному номеру с первым файлом (с каждым его листом по всей книге) и количество совпадений записывалось в xls- файл (лучше, конечно, во второй файл в столбец рядом с количеством). В принципе всё сводится к поиску совпадений по всей книге средствами формул - но я не знаю какими формулами воспользоваться для поиска. Может быть есть и более элегантный метод, может лучше вообще использовать Visual Basic. Помогите, пожалуйста. |
|
Отправлено: 10:30, 21-10-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Упакуйте в архив и выложите образцы первой и второй рабочих книг.
|
Отправлено: 11:27, 21-10-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 50
|
Профиль | Отправить PM | Цитировать Добавил архив с файлами-примерами
|
Отправлено: 11:44, 21-10-2014 | #3 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Примерно так:
Вставьте код в модуль «ЭтаКнига» рабочей книги «Копия ИТ_24 09 14 (Выгрузка из 1С).xls». Откройте рабочую книгу «Карточка учёта техники.xlsx». Выполните процедуру «CountBy()» из приведённого кода. Разумеется, для реальной работы Вам придётся ещё настраивать и настраивать приведённый код под конкретные детали, поскольку это, скорее, макет, не содержащий никаких проверок. |
Отправлено: 12:23, 21-10-2014 | #4 |
Пользователь Сообщения: 50
|
Профиль | Отправить PM | Цитировать Iska, спасибо, но для меня без комментариев данный код пока довольно труден.
Покопался на других форумах и нашёл нечто похожее. В файл Карточка учёта техники.xlsx добавил лист "1С" с информацией из книги «Копия ИТ_24 09 14 (Выгрузка из 1С).xls». Макрос сделал в виде функции: Но есть проблема: метод Find ищет на листе только первое упоминание об искомом элементе, а элементов с одним инвентарным номером на листе может быть несколько. Пробовал подобрать цикл поиска по листу типа do Findnext until, но у он у меня не работает ![]() |
|
Последний раз редактировалось Geliosvamp, 24-10-2014 в 15:31. Отправлено: 14:08, 24-10-2014 | #5 |
Модератор Сообщения: 16837
|
Профиль | Сайт | Отправить PM | Цитировать Geliosvamp, я не вникал в вашу проблему, но по вашим словам
Цитата Geliosvamp:
Попробуйте "прикрутить" его к своей задаче |
|
------- Отправлено: 20:35, 24-10-2014 | #6 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Geliosvamp:
Рисунок: P.S. Печально, что в Excel нет операции вычитания диапазонов. Или я просто не нашёл? |
|
Отправлено: 11:48, 25-10-2014 | #7 |
Пользователь Сообщения: 50
|
Профиль | Отправить PM | Цитировать Iska, огромное спасибо!
Код работает как надо. Единственное, что переделал: 1. это имена - лучше использовать на английском, а то наблюдаю проблемы с кодировкой 2. заменил в последнем цикле Offcet с 1 на 2, а то число позиций на складе заменялось выданными (видимо этого я и не заметил в первый раз и думал, что скрипт что-то недоделывал) PS: okshef, я пробовал, но у меня что-то с таким циклом не вышло ничего. Убив больше времени на изучение синтаксиса, думаю получилось бы, но уже не надо ![]() |
Отправлено: 10:15, 28-10-2014 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Geliosvamp:
Цитата Geliosvamp:
![]() |
||
Отправлено: 11:33, 28-10-2014 | #9 |
Пользователь Сообщения: 50
|
Профиль | Отправить PM | Цитировать Iska,
Поясняю примером Скрытый текст
![]() PS: что-то в Google Chrome цитирование не работает ( |
Отправлено: 12:58, 28-10-2014 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Поиск и изминение строк в файле | nbafree | Скриптовые языки администрирования Windows | 3 | 26-10-2012 21:08 | |
CMD/BAT - поиск строк по шаблону и запись в отдельный файл | AVTS | Скриптовые языки администрирования Windows | 4 | 13-07-2012 00:51 | |
CMD/BAT - Поиск слова в тексте, удаление строки, удаление 8 строк выше и 3 строк ниже | Alk-13 | Скриптовые языки администрирования Windows | 0 | 10-02-2012 18:06 | |
CMD/BAT - Поиск и копирование нескольких строк из текстового файла. | valen | Скриптовые языки администрирования Windows | 0 | 07-11-2011 17:27 | |
Разное - Поиск количества строк в тексте | DaRiYs | Программирование и базы данных | 2 | 15-03-2010 16:24 |
|