|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
31.10.2013, 11:55 | #1 |
Пользователь
Регистрация: 06.05.2011
Сообщений: 38
|
Объединения нескольких файлов
Добрый день,
Столкнулся с вопросом объединения нескольких файлов xls в одну таблицу. Если все файлы лежат в одной папке - проблем нет, но как быть если есть папка со множеством подпапок, в которых содержится одинаковый файл "Список чертежей.xls" с разным содержанием. Можно конечно осуществить поиск всех файлов по имени, скопировать их в одну папку, переименовать и объединить, но это очень прямолинейно. ( |
31.10.2013, 12:10 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
Готовое решение:
http://excelvba.ru/code/CombineFiles (только удалить немного лишнего надо из кода) и внести небольшие изменения: Код:
|
31.10.2013, 12:54 | #3 |
Пользователь
Регистрация: 06.05.2011
Сообщений: 38
|
Спасибо! То что нужно! ))))))))
|
01.11.2013, 05:07 | #4 |
Пользователь
Регистрация: 06.05.2011
Сообщений: 38
|
Код отличный, только почему то гиперссылки не копируются (
|
01.11.2013, 06:03 | #5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,856
|
потому что код не копирует ячейки, а переносит ЗНАЧЕНИЯ ячеек
(это заметно ускоряет процесс переноса данных) Используйте метод COPY - и всё будет переноситься: ДиапазонИзФайла.Copy ПерваяПустаяЯчейкаДляВставкиВСводно мФайле |
01.11.2013, 07:22 | #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 |
01.11.2013, 07:27 | #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 |