|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.06.2010, 19:07 | #1 |
Регистрация: 03.06.2010
Сообщений: 5
|
Поиск данных по условиям соответствия и копирование
Здравствуйте.
Подскажите , пожалуйста, код для решения моего вопроса. Мне нужно с вашей помощью и VBA найти данные из рабочего листа в других листах, затем скопировать их в файл. Условия поиска и копирования я изложил в прикрепленном файле. Спасибо. |
04.06.2010, 06:16 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Требуются пояснения (по крайней мере, для меня):
1. Что, собственно, нужно искать? Есть заполненные строки на листе "Macro". Где искать - определяется столбцом "E". А по каким совпадениям (по каким столбцам) считать, что мы нашли то, что требуется? 2. Что должно быть в таблице, которую мы будем копировать в файл "HET.xls"? Вы написали соответствие некоторых столбцов. Что должно быть в остальных? 3. При копировании в файл, нужно ли смотреть, есть ли уже такая запись? Или копировать по умолчанию? Кстати, можно получить данные из файла, не открывая его. Записать же данные можно только в открытый файл. Но, можно сделать так, что пользователь этого даже не заметит. 4. Лучше всего, чтобы у отвечающих не было к Вам вопросов, добавьте лист с примером результирующей таблицы, которая должна быть записана в файл, на основании имеющихся данных.
Чем шире угол зрения, тем он тупее.
|
04.06.2010, 12:41 | #3 |
Регистрация: 03.06.2010
Сообщений: 5
|
Спасибо большое, что откликнулись. Это было так неожиданно для меня,
но очень приятно. Я подкорректировал свои объяснения согласно Вашим вопросам. У меня исходные для поиска строки находятся на листе ,,Macro,,. 1 Найти соответствующие стороки на листах "Order Dupl" и "Order Gen" в именованных диапазонах Условия поиска: Если в исходной строке в столбце E значение "оригинал", то ищем на листе "Order Gen" Иначе ищем на листе "Order Dupl" Условия соответствия: исходная строка искомая строка столбец A соответствует столбцу A столбец B соответствует столбцу C столбец I соответствует столбцу K столбец J соответствует столбцу L столбец K соответствует столбцу O 2 Скопировать найденные строки в файл HET.xls (путь C:\Users\Igor\Documents) в первую незаполненную строку. Есть ли возможность при вставке не открывать файл HET.xls? 3 Удалить найденные строки с листов "Order Dupl" и "Order Gen" На листе ,,HETxls,, образец таблицы , которую хочу получить в результате манипуляций с копированием в файле ,,HET.xls,, |
04.06.2010, 12:55 | #4 |
Регистрация: 03.06.2010
Сообщений: 5
|
В продолжение ответа на вопрос.
При записи в файл проверка на наличие таких же записей в файле не нужна. Если не получится записать в закрытый файл, то это не самое принципиальное. А вот сделать так, что пользователь этого даже не заметит - здорово. ...Хотя пользователь это я. |
08.06.2010, 08:29 | #5 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Посмотрите вложение. Откройте файл "TestCopyDel_2.xls" и запустите макрос "Main". Макрос не проверяет наличие указанного пути и файла (а нужно? и что в этом случае делать?). Поэтому, предварительно поместите файл с именем "NET.xls" в папку "C:\Users\Igor\Documents". Если требуется другой путь или другое имя файла для записи данных - измените соответствующую строку в коде макроса. Там есть комментарий.
Чем шире угол зрения, тем он тупее.
|
09.06.2010, 11:41 | #6 |
Регистрация: 03.06.2010
Сообщений: 5
|
SAS888, большое спасибо, что не забыли про меня.
Мне очень понравился ваш макрос, я его собираюсь целиком использовать у себя. Хочу попросить Вас внести корректировку в код. Во время проверки условий соответствия Ваш код находит методом Find первое попавшееся совпадение, и если какое-нибудь условие из оставшихся (там, где много If идет) не устраивает, то он теряет к этой строке (из Листа ,,Macro,,) всякий интерес. А на самом деле совпадений по столбцу А может быть больше, чем одно, из-за ошибок юзера при вводе. А строка, которая совпадет по всем условиям, там точно есть, т.к. я ее оттуда же и копировал. Проверка на наличие пути и файла не нужна. Это для персонального использования, и я помню, что этот файл там есть. (главное, чтоб макрос об этом всегда помнил) Спасибо, Игорь. |
09.06.2010, 14:06 | #7 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
В следующем примере поиск производится до первого совпадения всех критериев.
Чем шире угол зрения, тем он тупее.
|
10.06.2010, 23:23 | #8 |
Регистрация: 03.06.2010
Сообщений: 5
|
Спасибо большое.
Все работает как я и хотел. Вы мне очень помогли. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
поиск/копирование данных в edit | kate158 | Компоненты Delphi | 4 | 24.09.2009 16:58 |
поиск и подсчет по условиям | insector | Microsoft Office Excel | 1 | 18.09.2009 18:47 |
Таблица соответствия типов данных Delphi и MS SQL Server 2000 | jane | БД в Delphi | 1 | 07.08.2008 19:26 |