|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
29.01.2017, 09:21 | #1 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
Копирование строк макросом при условии
Доброго времени суток, уважаемые форумчане!
Есть два файла, первый называется "ИНН", второй "Учет по контрагентам" в котором тысячи строк. В настоящее время, я в файле "ИНН", создаю новый лист (Лист1), из файла "Учет по контрагентам" копирую 4-ю строку (шапку таблицы), затем из файла "ИНН" с листа "ОТКРЫТЫЕ" из графы "С" (ИНН), копирую значение ИНН, перехожу в файл "Учет по контрагентам" и в графе "С" (ИНН) ищу все строки, где найдется значение, копирую строки (ячейки A:S) и вставляю их на "Лист1" файла "ИНН", после чего на "Лист1" по данному значению ИНН из листа "ОТКРЫТЫЕ" в графу " Т ", вставляю КОД (значение графы "А"). Пробовал это делать ставя фильтр в файле "Учет по контрагентам" по графе "С" (ИНН), зависает Excel, так как очень много строк в файле. По этому обращаюсь к вам за помощью, можно ли эту процедуру, делать макросом? |
29.01.2017, 12:19 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Можно.
Думаю оптимально так - 1. сперва собрать словарь номеров ИНН из одноимённого файла (даже два - во втором к каждому сохранить его код). 2. циклом по данным контрагентов (быстрее по массиву, а не ячейкам) к каждому ИНН в словаре собрать коллекцию номеров нужных строк (т.е. ненужные ИНН не храним) 3. делаем лист с шапкой (ну или уже имеем заготовленный шаблон), куда перебором словаря и коллекций копируем в нужном порядке данные (все координаты уже есть). P.S. Как вариант - код хранить в файле с заготовкой этого сборного листа (чтоб не изменять источники), в начале кода предложить пользователю указать мышью первый и второй файл с данными, в конце копию готового листа с результатом сохранить в файл или скопировать в первый файл, сам "инструмент" закрыть без сохранения изменений. Хотя шапку в общем нет проблем скопировать из источника, если она будет непостоянной...
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 29.01.2017 в 12:30. |
29.01.2017, 12:56 | #3 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
Ой... Пока читал, на голове что-то шевелилось... Кажется это волосы...
Примерно понял задумку, но писать макросы, умею только "макрорекордером", не думаю что с его помощью это возможно сделать. |
29.01.2017, 13:01 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
С его помощью - всё нет, а вот конкретно копирование можно записать.
Остальное всё есть тут на форуме - как использовать словарь (если работаете под виндой) и коллекции, изучайте, ещё много где пригодится.
webmoney: E265281470651 Z422237915069 R418926282008
|
29.01.2017, 13:07 | #5 | |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
Цитата:
Если такое возможно сделать, то было бы КРУТО!!! |
|
29.01.2017, 13:09 | #6 | |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
Цитата:
Спасибо! Буду продолжать искать |
|
29.01.2017, 13:14 | #7 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну файлы открываться будут, но можно открывать их скрыто.
Вообще я подразумевал такой вариант - эти оба файла уже открыты, оба видны на экране одновременно (т.е. оба "неразвёрнуты" на весь экран), Вы открываете инструмент, сразу появляется просьба указать первый источник, затем второй, затем уже готов результат. Если файлы не открыты - тогда можно предлагать выбирать/указывать их в дереве файлов, что может быть сложнее и на практике чревато ошибками, т.к. не видно что именно выбрали, на каких листах там нужные данные, плюс что тогда конкретно делать с результатом работы?
webmoney: E265281470651 Z422237915069 R418926282008
|
29.01.2017, 13:19 | #8 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
Ну да, если в закрытых файлах сложно будет выбрать исходный лист с данными, то можно и с открытыми книгами работать. Тогда в открытых книгах оба листа будут активными.
|
29.01.2017, 13:23 | #9 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
В закрытых файлах листы не видны - т.е. тогда их номера/индексы или названия нужно точно знать заранее, если там всегда всё постоянно и генерится машиной - то нет проблем, а если с ними работают люди - то проблемы неизбежны
Когда файл открыт - Вы его видите, и в какой лист сами ткнёте мышью - за тот сами и отвечать будете. И не важно как называется лист/книга, это в коде нигде не прописывается.
webmoney: E265281470651 Z422237915069 R418926282008
|
29.01.2017, 14:42 | #10 |
Форумчанин
Регистрация: 28.05.2014
Сообщений: 158
|
Кто понял, как это воплотить можно? А то у меня с рекордером, да и в целом, ерунда какая-то получается...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос копирование ячеек при условии жирного шрифта | АннаСаратов1994 | Microsoft Office Excel | 25 | 20.12.2013 19:20 |
Удаление строк при условии | vitaland | Microsoft Office Excel | 4 | 10.03.2012 11:22 |
Копирование данных из одной ячейки в другую при условии | hrom_scorpio | Microsoft Office Excel | 4 | 06.08.2011 19:18 |
При условии перенос строк из одного листа в другой | Ilya_L | Microsoft Office Excel | 5 | 19.06.2010 06:15 |
Копирование значения в другой столбец при определенном условии | stasbz | Microsoft Office Excel | 1 | 01.07.2009 23:55 |