Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Копирование массивов данных с листов одной книги в другую - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование массивов данных с листов одной книги в другую (Макросы Sub)
Копирование массивов данных с листов одной книги в другую
ignat Дата: Суббота, 28.12.2013, 20:36 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Привет, ребята, у меня возникла серьезная проблема - не могу написать макрос.
Смысл таков: у меня есть книги с большим количеством листов - порядка 200-300. На каждом листе находятся упорядоченной структуры данные, которые мне нужно объединить на одном листе. Наглядно - в прикрепленном файле.
На листе "исходник" показана структура данных. В ячейке А2 находится номер скважины, оранжевым и зеленым выделены данные для копирования. На листе "результат" показано то, что должно быть в итоге, а именно:
1) номер скважины должен копироваться из ячейки А2 исходника;
2) строка параметров должна автоматически прописываться (от qж до Нсп);
3) данные из оранжевых областей копируются и транспонируются в область с3-l3, данные из зеленой области - в м3-р33;
4) в столбце в3-в33 должны автоматически появляться номера дней (это вроде как месячные данные, посему берем для каждого месяца 31 день, чтобы не париться);
5) !!!!самое главное!!!!! для одного листа я могу записать последовательность действий вручную, но когда в одной книге их 200 - проблема неразрешимая. Мне нужно, чтобы с помощью нового макроса выполнялись пункты 1-4, а затем (с этим и проблема) после копирования данных до 139 строки исходника на лист с результатами Эксель переходил на следующий лист и делал то же самое, продолжая таблицу вниз. Как это сделать - я не знаю, поскольку в программировании полный нуль.
Буду очень благодарен, если кто-то сможет помочь.
К сообщению приложен файл: 5139773.xlsm (44.4 Kb)
 
Ответить
СообщениеПривет, ребята, у меня возникла серьезная проблема - не могу написать макрос.
Смысл таков: у меня есть книги с большим количеством листов - порядка 200-300. На каждом листе находятся упорядоченной структуры данные, которые мне нужно объединить на одном листе. Наглядно - в прикрепленном файле.
На листе "исходник" показана структура данных. В ячейке А2 находится номер скважины, оранжевым и зеленым выделены данные для копирования. На листе "результат" показано то, что должно быть в итоге, а именно:
1) номер скважины должен копироваться из ячейки А2 исходника;
2) строка параметров должна автоматически прописываться (от qж до Нсп);
3) данные из оранжевых областей копируются и транспонируются в область с3-l3, данные из зеленой области - в м3-р33;
4) в столбце в3-в33 должны автоматически появляться номера дней (это вроде как месячные данные, посему берем для каждого месяца 31 день, чтобы не париться);
5) !!!!самое главное!!!!! для одного листа я могу записать последовательность действий вручную, но когда в одной книге их 200 - проблема неразрешимая. Мне нужно, чтобы с помощью нового макроса выполнялись пункты 1-4, а затем (с этим и проблема) после копирования данных до 139 строки исходника на лист с результатами Эксель переходил на следующий лист и делал то же самое, продолжая таблицу вниз. Как это сделать - я не знаю, поскольку в программировании полный нуль.
Буду очень благодарен, если кто-то сможет помочь.

Автор - ignat
Дата добавления - 28.12.2013 в 20:36
RAN Дата: Суббота, 28.12.2013, 20:41 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Я, конечно, понимаю, что нарушаю "Правила" форума, поскольку здесь где-то это тоже найти можно, но вот
http://www.excel-vba.ru/chto-um....li-knig

PS Может успеете прочитать, пока ссылку не удалят, а меня не забанят. :(


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Суббота, 28.12.2013, 20:44
 
Ответить
СообщениеЯ, конечно, понимаю, что нарушаю "Правила" форума, поскольку здесь где-то это тоже найти можно, но вот
http://www.excel-vba.ru/chto-um....li-knig

PS Может успеете прочитать, пока ссылку не удалят, а меня не забанят. :(

Автор - RAN
Дата добавления - 28.12.2013 в 20:41
ignat Дата: Суббота, 28.12.2013, 20:46 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, спасибо, на работе завтра попробую применить. С горя начал уже читать книги по VBA, но, поскольку дело к НГ, и проблема сильно жмет, толку особо не вышло. Об успехах отпишусь по мере получения результата.
 
Ответить
СообщениеRAN, спасибо, на работе завтра попробую применить. С горя начал уже читать книги по VBA, но, поскольку дело к НГ, и проблема сильно жмет, толку особо не вышло. Об успехах отпишусь по мере получения результата.

Автор - ignat
Дата добавления - 28.12.2013 в 20:46
Hugo Дата: Суббота, 28.12.2013, 22:42 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
В целом задача примерно понятна, в деталях нет.
Я бы делал на словаре. Цикл по листам, в каждом цикл по данным - собираем в словарь по ключу номер_скважины/дата/"обв" эти иксы (если там числа, то их можно суммировать при повторе ключа, если строки - собирать через запятую).
Изучите работу с словарём (scripting.dictionary) и массивы, чтоб побыстрее шевелилось.
Далее заготавливаем таблицу для результатов (или по количеству собранного, или вручную, или в процессе, не важно как).
Теперь цикл по таблице (кстати, данные шапки тоже можно заранее собрать в словарь, из которого затем выгрузить - чтоб не забыть какую-нибудь qг), на каждом шаге (для каждой ячейки) собираем ключ, по ключу из словаря извлекаем данные.

Работа не на 5 минут, так что думаю ради удовольствия никто не сделает. А вот в разделе "работа" думаю за сутки реально договориться.
А если сами разберётесь/сделаете по такому алгоритму - то в дальнейшем много чего сможете легко делать сами.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
СообщениеВ целом задача примерно понятна, в деталях нет.
Я бы делал на словаре. Цикл по листам, в каждом цикл по данным - собираем в словарь по ключу номер_скважины/дата/"обв" эти иксы (если там числа, то их можно суммировать при повторе ключа, если строки - собирать через запятую).
Изучите работу с словарём (scripting.dictionary) и массивы, чтоб побыстрее шевелилось.
Далее заготавливаем таблицу для результатов (или по количеству собранного, или вручную, или в процессе, не важно как).
Теперь цикл по таблице (кстати, данные шапки тоже можно заранее собрать в словарь, из которого затем выгрузить - чтоб не забыть какую-нибудь qг), на каждом шаге (для каждой ячейки) собираем ключ, по ключу из словаря извлекаем данные.

Работа не на 5 минут, так что думаю ради удовольствия никто не сделает. А вот в разделе "работа" думаю за сутки реально договориться.
А если сами разберётесь/сделаете по такому алгоритму - то в дальнейшем много чего сможете легко делать сами.

Автор - Hugo
Дата добавления - 28.12.2013 в 22:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Копирование массивов данных с листов одной книги в другую (Макросы Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!