Страница 1 из 1

Макрос извлекающий данные из нескольких файлов

Добавлено: 29 сен 2005, 17:19
PC
Всем добрый день!

Мне необходим макрос, который будет извлекать данные из нескольких файлов. Есть одна папка в которую складываются файлы отчетов от разных регионов. Файлы содержат в названии R01, R02 и тд. В этой же папке лежит файл "Total", который собирает информацию из региональных файлов.
В идеале (так как отчеты бывают разными), хотелось бы чтобы макрос полностью копировал страницу из файла R01 и вставлял ее в файл "Total" на лист R01 и так далее по всем файлам.

Если кто-то сможет помочь, буду очень признателен :-)

Добавлено: 29 сен 2005, 20:22
pashulka
Если файлы R01, R02 и т.д. cодержат всего один лист, то можно попробовать использовать этот макрос :

Код: Выделить всё

iPath = ThisWorkbook.Path & "\"
iFileName = Dir(iPath & "*.xls")

Application.ScreenUpdating = False

Do While iFileName <> ""
   If iFileName Like "R0*" Then
      ThisWorkbook.Sheets.Add _
      (Type:=iPath & "\" & iFileName).Name = iFileName
   End If
   iFileName = Dir
Loop

Application.ScreenUpdating = True
P.S. Желательно расположить этот код в файле Total

Добавлено: 29 сен 2005, 22:32
Naeel Maqsudov
PC, попробуйте сначала обойтись без макросов.
Часто это оказывается гораздо более быстро и эффективно.

например:

='C:\Documents and Settings\User1\My Documents\[Book2.xls]Sheet1'!$A$1

Добавлено: 30 сен 2005, 00:19
pashulka
PC, Обратите внимание на то, что ссылки возвращают только значения ячеек, т.е. "теряются" все параметры форматирования, а в профессиональных отчётах это немаловажная часть … а уж если в исходных рабочих книгах наличествуют формулы, которые необходимо оставить или диаграммы, то обычные ссылки Вам ничем не помогут, хотя использование ссылок - это действительно очень быстро и эффективно.

Добавлено: 30 сен 2005, 15:08
PC
Супер! Павел, спасибо огромное!!!

PS Только по какой-то причине происходит двойное копирование листов. Первый лист называется "R02_отчет.xls" второй просто "R02". При этом листа "R01" нет вообще, есть только "R01_отчет.xls".

Добавлено: 30 сен 2005, 16:17
pashulka
Если файлы R01, R02 и т.д. cодержат всего один лист, то наличие листа с именем R02 означает, что он изначально находился в рабочей книге "Total.xls" … возможно, что файлы R01, R02 всё-таки содержат несколько листов, поэтому предлагаю написать мне напрямую, дабы решить этот вопрос с учётом всех нюансов.