|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.09.2012, 18:03 | #1 |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
Макрос: обновление одного файла данными из другого
Доброго времени суток!
Да, есть достаточное количество похожих топиков, но увы, острый случай нехватки скилла мне не дает вычленить решение проблемы, разбросанное между многими решениями других проблем на форуме Так что, уж извините, если что где не смог увидеть. Ситуация: есть два файла, один с большой рабочей таблицей, второй с таблицей поменьше. Структура, в принципе, одинаковая, но порядок и число столбцов разные. Первый столбец всегда содержит дату, а первая строка - имеет заголовки с унифицированными кодами. Задача: с помощью макроса перенести более новые данные из второго файла в соответствующие столбцы файла первого. Прилагаю архив с примерной структурой файлов (оригинальные во многие разы более объемны), где Main - первый, рабочий файл, который нужно обновить данными из второго файла Source. Заранее благодарен всякому, кто предложит любую помощь. |
07.09.2012, 20:36 | #2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Если согласны обновлять, указав в настройках какой столбец в какой копировать (даты сверятся кодом, а пары столбцов нужно указать в настройках), и готовы после 15-го раза заплатить - то решение уже есть -
http://www.excelworld.ru/index/comparefiles_find/0-25 или http://ibay.narod.ru/other/CompareFiles.Find.rar Ну а если нужен полный автомат - нужно писать...
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 08.09.2012 в 13:30. |
10.09.2012, 13:26 | #3 |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
Спасибо за ссылку, но нет, такой вариант мне не подойдет.
Действительно, нужно писать, и вот на этом этапе у меня и возникают проблемы |
10.09.2012, 13:42 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Я сперва неправильно Вас понял - "более новые" это за те даты, которых ещё нет в Main? Существующие даты обновлять не нужно?
webmoney: E265281470651 Z422237915069 R418926282008
|
10.09.2012, 13:46 | #5 |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
Да, именно так.
|
10.09.2012, 13:51 | #6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Стал думать над задачей - что-то больно сложная задача...
Хотя с виду не скажешь Вероятно, тут проще на SQL делать - но я по SQL не специализируюсь
webmoney: E265281470651 Z422237915069 R418926282008
|
10.09.2012, 13:58 | #7 | ||
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
Цитата:
А, казалось бы, нужно всего-то добавить следующую дату в первом столбце, после чего рассовать значения по строке из второго файла в первый по коду. И зашить это в цикл. Как-то так. Цитата:
Так или иначе, спасибо большое за ответ, буду копать глубже и ждать дальше, может, кто-нибудь еще сможет помочь. |
||
10.09.2012, 14:18 | #8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Если бы просто добавить следующую - это легко.
Но ведь может быть какая-то дата уже есть, но с данными по другому столбцу. И после того, как обработали один столбец - все даты уже будут занесены, с данными по этому столбцу (получится ситуация, как я написал выше). Т.е. нужно совместить две таблицы, "забив" пустоту в Main данными из Source, и дописав отсутствующие ниже. Мне кажется, что это задача для SQL. Хотя можно сделать и макросом перебором, но долго. Можно быстро макросом на массивах и словарях - но кажется сложно (сразу алгоритм не нарисовался)
webmoney: E265281470651 Z422237915069 R418926282008
|
10.09.2012, 14:31 | #9 | |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
Цитата:
Но возникла мысль, что данные в Source по уже прописанным в Main датам могут быть более корректные, поэтому, думается, лучше всего было бы просто переносить полностью все позиции из Source в Main. В Source всегда будет меньше строк и меньше столбцов, чем в основной книге. Я, в принципе, так изначально и думал. Долго - это всмысле долго писать, или макрос долго будет работать? Потому что если второе, то это несущественная проблема. |
|
10.09.2012, 15:09 | #10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Работать будет долго.
Но раз Вы говорите, что нужно обновить данные - то это ведь очень похоже на update SQL - обновить одну таблицу из другой. Спец нужен - код будет простой и быстрый.
webmoney: E265281470651 Z422237915069 R418926282008
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как ComboBox на UserForm заполнить данными с другого листа ? | Snekich | Microsoft Office Excel | 2 | 08.12.2011 18:37 |
Работа с данными с другого листа | printer | Microsoft Office Excel | 1 | 14.06.2011 20:01 |
Копирование данных из одного файла Excel в другой через макрос | I.P.iX | Microsoft Office Excel | 0 | 31.05.2011 22:20 |
Макрос, запускающий макрос из другого закрытого файла | petruha | Microsoft Office Excel | 7 | 14.03.2010 11:31 |
Создать файл с данными на основе другого файла. Паскаль)) | ТРОЯН=) | Помощь студентам | 13 | 16.04.2009 18:51 |