![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
![]()
Доброго времени суток!
Да, есть достаточное количество похожих топиков, но увы, острый случай нехватки скилла мне не дает вычленить решение проблемы, разбросанное между многими решениями других проблем на форуме ![]() Ситуация: есть два файла, один с большой рабочей таблицей, второй с таблицей поменьше. Структура, в принципе, одинаковая, но порядок и число столбцов разные. Первый столбец всегда содержит дату, а первая строка - имеет заголовки с унифицированными кодами. Задача: с помощью макроса перенести более новые данные из второго файла в соответствующие столбцы файла первого. Прилагаю архив с примерной структурой файлов (оригинальные во многие разы более объемны), где Main - первый, рабочий файл, который нужно обновить данными из второго файла Source. Заранее благодарен всякому, кто предложит любую помощь. |
![]() |
![]() |
![]() |
#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. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
![]()
Спасибо за ссылку, но нет, такой вариант мне не подойдет.
Действительно, нужно писать, и вот на этом этапе у меня и возникают проблемы ![]() |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
Я сперва неправильно Вас понял - "более новые" это за те даты, которых ещё нет в Main? Существующие даты обновлять не нужно?
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
![]()
Да, именно так.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
Стал думать над задачей - что-то больно сложная задача...
Хотя с виду не скажешь ![]() Вероятно, тут проще на SQL делать - но я по SQL не специализируюсь ![]()
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#7 | ||
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
![]() Цитата:
![]() А, казалось бы, нужно всего-то добавить следующую дату в первом столбце, после чего рассовать значения по строке из второго файла в первый по коду. И зашить это в цикл. Как-то так. Цитата:
![]() Так или иначе, спасибо большое за ответ, буду копать глубже и ждать дальше, может, кто-нибудь еще сможет помочь. |
||
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
![]()
Если бы просто добавить следующую - это легко.
Но ведь может быть какая-то дата уже есть, но с данными по другому столбцу. И после того, как обработали один столбец - все даты уже будут занесены, с данными по этому столбцу (получится ситуация, как я написал выше). Т.е. нужно совместить две таблицы, "забив" пустоту в Main данными из Source, и дописав отсутствующие ниже. Мне кажется, что это задача для SQL. Хотя можно сделать и макросом перебором, но долго. Можно быстро макросом на массивах и словарях - но кажется сложно (сразу алгоритм не нарисовался) ![]()
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
![]() Цитата:
Но возникла мысль, что данные в Source по уже прописанным в Main датам могут быть более корректные, поэтому, думается, лучше всего было бы просто переносить полностью все позиции из Source в Main. В Source всегда будет меньше строк и меньше столбцов, чем в основной книге. Я, в принципе, так изначально и думал. Долго - это всмысле долго писать, или макрос долго будет работать? Потому что если второе, то это несущественная проблема. |
|
![]() |
![]() |
![]() |
#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 |