|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.06.2010, 22:33 | #1 |
Регистрация: 07.06.2010
Сообщений: 4
|
Скопировать данные из некоторых ячеек одной книги в другие книги
Здраствуйте, в VB я не разбираюсь, программирую на PHP, но знакомый попросил решить такую простенькую для тех, кто шарит в VB, задачу:
В папке есть Х книг с разными именами (если надо, я могу переименовать их в 1.xls, 2.xls и т.д.), в этой же папке есть файл 0.xls, будем называть его мастер-книгой. Книги содержат много листов и структура всех книг абсолютно одинаковая. Нужно, запустив макрос из мастер-книги, пробежаться по всем остальным файлам в папке и скопировать из мастер-книги в остальные некоторые ячейки с некоторых листов. Т.е., чтобы в начале макроса я мог сам указать какие ячейки копировать. В формате массива, содержащего подобные элементы: имя_листа->ячейка или номер_листа->ячейка. В общем, алгоритм на псевдоязыке где-то такой: PHP код:
Последний раз редактировалось fcunited; 07.06.2010 в 22:37. |
08.06.2010, 18:44 | #2 |
Регистрация: 07.06.2010
Сообщений: 4
|
Anyone????
|
08.06.2010, 23:45 | #3 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Я думаю, тут проблема в том, как заполнить массив ячеек для копирования. Т.к. сам механизм копирования работает:
Код:
Т.е. если есть массив, скопировать не проблема. Но вот каким механизмом заполнить массив? Не выдавать же кучу инпутбоксов? Брать данные с листа тоже не очень хорошо. Одновременное выделение по нескольким листам не работает... Я пока не вижу, как это удобно сделать.
webmoney: E265281470651 Z422237915069 R418926282008
|
09.06.2010, 07:04 | #4 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Hugo121 абсолютно прав. Посмотрите один из возможных вариантов во вложении. Откройте файл "0.xls" и нажмите кнопку. В появившейся форме нужно выбрать файлы, в которые будем копировать (допустим множественный выбор) и указать номера листов и диапазоны для каждого листа. Например, если выбрать "Книга2.xls" и "Книга4.xls", номера листов - 1, 3 и диапазоны - A1 A5, A8 A10:B20, то будет произведено копирование данных из книги "0.xls" в выбранные книги, листы, диапазоны. Макраос не проверяет правильность заполнения формы (если нужно - добавьте самостоятельно), поэтому, будьте внимательны. Адреса ячеек (диапазонов) в пределах листа разделять пробелом. Адреса ячеек (диапазонов) для следующего листа отделять запятой.
Чем шире угол зрения, тем он тупее.
|
09.06.2010, 10:48 | #5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Хорошо написанный код, сделана работа, но мне например такой механизм не нравится - надо помнить адреса не только на текущем листе, но и на других, всё это вручную занести в форму...
Может лучше так - на каждом листе кнопка макроса. Открываем лист, выделяем все нужные ячейки листа, жмём кнопку - они копируются. Открываем следующий лист - аналогично и т.д. Но вот как выбрать нужные файлы - опять непонятно. И выполняться будет дольше, чем сразу всё копировать, но вроде как удобнее. Если надо копировать во все файлы папки без индивидуального выбора - я бы сделал так.
webmoney: E265281470651 Z422237915069 R418926282008
|
09.06.2010, 11:05 | #6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Может и лучше. Может быть вообще не требуется ничего выделять. Может все данные (листы, диапазоны) уже где-то содержатся. Автор-то молчит...
Чем шире угол зрения, тем он тупее.
|
09.06.2010, 11:26 | #7 | |
Регистрация: 07.06.2010
Сообщений: 4
|
Цитата:
Более того, в будущем, через несколько дней мне придут Ексель-файлы другой структуры, в которых надо будет снова из мастер-книги скопировать в n книг какие-то ячейки. ПС: сейчас проверю код, который Вы выложили. Спасибо за помощь! |
|
09.06.2010, 12:03 | #8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Ну повыделять-то пока некуда, я такой код сейчас писать не буду, некогда. Да и с файлами пока непонятно, когда и где их выбирать...
webmoney: E265281470651 Z422237915069 R418926282008
|
09.06.2010, 12:14 | #9 |
Регистрация: 07.06.2010
Сообщений: 4
|
UPD: попробовал, работает просто блестяще!!! Огромное спасибо!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вставка ячеек из одной книги excel в другую | hackPNZ | Microsoft Office Excel | 7 | 17.10.2014 17:27 |
Скопировать диапазон с одной книги в другую, если совпадают назавание листов | m_v_v | Microsoft Office Excel | 7 | 06.04.2010 13:15 |
Автоматическое заполнение ячеек разных листов одной книги | tissot | Microsoft Office Excel | 2 | 26.01.2010 21:24 |
как из одного одной книги экспортировать данные на другой лист | mabru | Microsoft Office Excel | 11 | 07.01.2009 10:20 |
Ссылки на другие книги | Un1kum | Microsoft Office Excel | 1 | 10.07.2008 05:12 |