![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 06.05.2011
Сообщений: 38
|
![]()
Добрый день,
Столкнулся с вопросом объединения нескольких файлов xls в одну таблицу. Если все файлы лежат в одной папке - проблем нет, но как быть если есть папка со множеством подпапок, в которых содержится одинаковый файл "Список чертежей.xls" с разным содержанием. Можно конечно осуществить поиск всех файлов по имени, скопировать их в одну папку, переименовать и объединить, но это очень прямолинейно. ( |
![]() |
![]() |
![]() |
#2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Готовое решение:
http://excelvba.ru/code/CombineFiles (только удалить немного лишнего надо из кода) и внести небольшие изменения: Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.05.2011
Сообщений: 38
|
![]()
Спасибо! То что нужно! ))))))))
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 06.05.2011
Сообщений: 38
|
![]()
Код отличный, только почему то гиперссылки не копируются (
|
![]() |
![]() |
![]() |
#5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
потому что код не копирует ячейки, а переносит ЗНАЧЕНИЯ ячеек
(это заметно ускоряет процесс переноса данных) Используйте метод COPY - и всё будет переноситься: ДиапазонИзФайла.Copy ПерваяПустаяЯчейкаДляВставкиВСводно мФайле |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 06.05.2011
Сообщений: 38
|
![]()
Спасибо! Получилось, но есть проблема после отработки макроса съедает шапку в таблице (я так понимаю последнюю строку):
Попробовал добавить +1 строку, но не срабатывает Set ra = sh.Range(sh.Range("A3"), sh.Range("D" & sh.Rows.Count).End(xlUp)).Copy shd.Range("a" & shd.Rows.Count + 1).End(xlUp).Insert |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 06.05.2011
Сообщений: 38
|
![]()
Сори я сам сглупил Offset(1) удалил.
Set ra = sh.Range(sh.Range("A3"), sh.Range("D" & sh.Rows.Count).End(xlUp)).Copy shd.Range("a" & shd.Rows.Count).End(xlUp).Offset(1) .Insert Такой код делает всё как мне нужно. Спасибо ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
макрос для объединения информации из нескольких файлов | xenus91 | Microsoft Office Excel | 2 | 13.08.2013 12:28 |
Открытие нескольких файлов | BuT@JL | Общие вопросы Delphi | 3 | 13.03.2011 00:05 |
Открытие нескольких файлов | ChEaTeR-abc | Помощь студентам | 6 | 15.07.2010 17:03 |
Сводная таблица путем объединения нескольких диапазонов | ЛесяЛ | Microsoft Office Excel | 1 | 10.01.2010 22:54 |