![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
![]()
Можно конечно и так сделать, подожду старттопика
![]() вечерком набросаю.
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
![]() |
![]() |
![]() |
#22 | |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
![]() Цитата:
R Dmitry, спасибо за респонс! Увы, не получается запустить код - выдает ошибку "Недопустимое имя 'Лист1$'". Референс на АДО подключил. Да, задача именно такая. |
|
![]() |
![]() |
![]() |
#23 |
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
![]()
Ловите
ОбновлениеXLS.zip
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
![]() |
![]() |
![]() |
#24 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Классно.
А почему код в source? Ведь по логике процесса его нужно в main держать? Или код в main нельзя, т.к. этот файл обновляется? Тогда может быть иметь третий файл-инструмент, где выбирать эти два файла (или main можно там жёстко прописать)? И как я понял, имена столбцов нельзя сразу забить с запасом, на все? Хотя эту строку можно и динамически собирать - после выбора файла его открыть, прочитать заголовки столбцов, закрыть. Или как?
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 12.09.2012 в 21:30. |
![]() |
![]() |
![]() |
#25 | |||
Форумчанин
Регистрация: 07.03.2010
Сообщений: 796
|
![]()
Привет,
Цитата:
![]() Код все равно где держать, ADO работает нормально и с открытыми файлами.... но есть нюанс, если данные удалить ручками, последующий insert будет начинаться не с последней строки, а со следующей после удаленной. Так же вопрос возникает с типами данных, не получиться добавить строку со значением текст если первые строки идут числа, ну и тому подобные закавыки ![]() Цитата:
![]() Цитата:
Код:
Сначала находим нужную запись, затем в цикле добавляем или удаляем Код:
_____________________ Ну и напоследок, я бы не хранил данные в excel(как в БД) используя ADO. Да и обновление поддерживает только .xls , что тоже накладывает свои ограничения.
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
|
|||
![]() |
![]() |
![]() |
#26 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Спасибо.
Про xls не знал, это важно.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#27 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]()
Сделал средствами Excel. Применил редко используемый параметр
.PasteSpecial xlPasteValues, SkipBlanks:=True Если проходить по шагам, то все понятно.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
![]() |
![]() |
![]() |
#28 |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
![]()
Господа, всем огромное спасибо! Надеюсь, вам было не в тягость решать данную проблему
![]() Оба макроса отлично работают, теперь буду их изучать, выбирать один и прикручивать его к актуальным файлам. |
![]() |
![]() |
![]() |
#29 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
![]()
А вот "ленивый" способ привести столбцы в Source в тот же порядок, что в Main - расширенный фильтр!
Фильтр требует, чтобы в фильтруемом диапазоне были все заголовки, которые есть в диапазоне выгрузки. Поэтому надо приписать заголовки из Main к заголовкам в Source. Когда есть повторяющиеся заголовки, фильтр использует первый из них. Код:
![]()
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
![]() |
![]() |
![]() |
#30 |
Пользователь
Регистрация: 21.02.2012
Сообщений: 24
|
![]()
Казанский, еще раз хочу вас поблагодарить за макрос, я решил ваш использовать, потому что он гораздо более "резиновый", на мой взгляд.
Начал прикручивать к рабочим файлам, возник один нюанс, который я после проверил в файлах-примерах: при вставке значений из Source, если какие-то значения по датам уже есть в Main, то макрос вставляет обновленные значения, не нарушая формат. Если же дат таких в Main еще нет, то эти строки вставляются именно с тем самым форматом, который определен в Source, даже несмотря на то, что в коде вставка прописана как .PasteSpecial xlPasteValues. А это, конечно, мелочи, но как-то нехорошо. Как этот нюанс поправить, может, я что-то упустил из виду? |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как 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 |