|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Коллеги, день добрый. Помогите, плиз с таким вопросом. Есть три типа excel-файлов: с исходными данными (Исходники) - много; файлы, в который надо перенести данные из исходников (Результирующие) - много и один файл (Сборщик), в котором находится макрос и логика, из каких Исходников что брать и куда складывать в Результирующие. В Исходниках и Результатах макросов быть не должно. Делается в на ADO из VBA. Вопросы: 1. Как этот перенос можно сделать в один прием, т.е. выбрали селектом из Источника и сразу инсертом вставили в Результирующий (но здесь вопрос с типом данных, например, если ноль в Исходнике отформатирован как «-»). 2. Сделать в два приема: селектом выбрть из Источника в рекордсет, данные обработать (обработка формата «-», сложение, умножение и т.д.), а потом инсертом вставить в Результирующий. 3. М.б. посоветуете какой-то третий способ переноса данных? Есть у кого-нибудь примеры кода? Заранее спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 12:01 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Достаточно много операций можно сделать в самом запросе при селекте, необязательно же тупо копировать поля. У вас в распоряжении множество функций, в том числе IIF, Format и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 12:16 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Shocker.Pro, пока задача - тупо скопировать поля, обработка - вторая часть. На форуме я искал, но четкого примера через третий файл - нет, есть примеры, когда два файла (т.е. макрос в файле с данными, что не подходит). А в цикле данные перекидывать - медленно. Поэтому интересен пример с селект - инсерт. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 13:28 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Пример - пожалуйста: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
Если вы используете для подключения OLE DB и параметр HDR=Yes, то обращаться к полям нужно по именам, оказавшимся в первой строке диапазона-источника. Можете выставить HDR=No, тогда имена полей будут F1, F2, F3 и т.д. Не забывайте, что при использовании параметра IMEX=1 все данные преобразуются в текст! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 13:30 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Shocker.Pro, да, это мы прочитали в рекордсет. А потом надо в третий файл положить считанное, а в примере Cells(1, 5).CopyFromRecordset rs - т.е. в текущий. Что, открывать средствами экселя полностью Результирующий файл? Их много и работать будет медленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 13:40 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
А вот как вставить данные в Результирующий файл? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 13:43 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
S70А вот как вставить данные в Результирующий файл?так так и вставить: ячейки должны принадлежать результирующему файлу Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 13:48 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Не, создать результирующий файл средствами ADO не получится ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 13:52 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Результирующие файлы все есть, создавать не надо, если Вы об этом. На момент операции Источник и Результирующий открыты. Мне надо между ними просто данные перекинуть. Как из Сборщика сказать "Вставь считанные из Исходника селектом данные в Результирующий"? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 14:06 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
никак нужно использовать CopyFromRecordset ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 14:07 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Хорошо, CopyFromRecordset - как указать, что он должен скопировать из текущего файла не в него же, а в третий? Есть пример кода какой-нибудь: в текущем файле есть рекордсет с данными, вставить его в другой файл? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 14:17 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Попробовал сделать Код: vbnet 1. 2.
на экзекюте выдает ошибку как на скриншоте. Что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 14:18 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
S70, 3. М.б. посоветуете какой-то третий способ переноса данных? Расширенный фильтр в Excel. Примеры ищите по .AdvancedFilter . ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 14:33 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
S70Хорошо, CopyFromRecordset - как указать, что он должен скопировать из текущего файла не в него же, а в третий? Есть пример кода какой-нибудь: в текущем файле есть рекордсет с данными, вставить его в другой файл?я же уже ответил на этот вопрос 15985395 если что-то неясно - задайте конкретный вопрос S70на экзекюте выдает ошибку как на скриншоте. Что не так?То что работать с экселевским файлом через АДО можно только по чтению, но не по записи ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 14:41 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Shocker.Pro, на понятно следующее. Пусть я в Файле1. Здесь же у меня рекордсет с данными. Строка Код: vbnet 1.
предполагает, что я пишу в тот же Файл1. Как именно мне написать в коде, чтобы данные были вставлены в Файл2 (для него есть: путь, имя файла, имя листа и диапазон, куда вставить)? Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 15:02 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
S70Строка Код: vbnet 1.
предполагает, что я пишу в тот же Файл1.Строка предполагает, что ты пишешь в указанную книгу на указанный лист. Я просто не знаю твоей квалификации в области программирования, поэтому даю общие советы (хотя, предполагал, что оперируя SQL-запросами ты знаешь, как открыть книгу) Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 15:16 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Shocker.Pro, я с VBA-синтаксисом мало знаком, поэтому "плаваю". Логика понятна, но вот как кодом записать - не всегда знаю. Т.е. все-таки придется книгу открывать?.... (( ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 15:22 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
S70Т.е. все-таки придется книгу открывать?.... ((так да ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 15:26 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
Shocker.Pro, Спасибо большое за помощь. А еще как-нибудь можно решить эту задачу? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 15:30 |
|
Как можно скопировать данные между Excel-файлами?
|
|||
---|---|---|---|
#18+
S70А еще как-нибудь можно решить эту задачу? 15985699 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2014, 15:34 |
|
|
start [/forum/topic.php?fid=61&msg=38635713&tid=2174048]: |
0ms |
get settings: |
20ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 313ms |
total: | 481ms |
0 / 0 |