Страница 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 всё-таки содержат несколько листов, поэтому предлагаю написать мне напрямую, дабы решить этот вопрос с учётом всех нюансов.