Страницы: 1
RSS
Сводная таблица из разных книг
 
Такое возможно?  
Или только макросом?  
В папке лежат несколько книг(1 день - 1 книга)  
Необходимо собрать инфу с этих книг в одну таблицу  
В каждой книге 1-4 листа. Адреса нужных ячеек известны...  
Необходимые данные выделены цветом
001,010,011,100,101
 
xlsb не разрешает))))
001,010,011,100,101
 
Попробуй http://www.planetaexcel.ru/forum.php?thread_id=27252
There is no knowledge that is not power
 
Возможно: http://blog.contextures.com/archives/2010/08/30/macro-creates-excel-pivot-table-from-multiple-files/
KL
 
{quote}{login=Johny}{date=27.04.2011 04:25}{thema=Re: }{post}Попробуй http://www.planetaexcel.ru/forum.php?thread_id=27252{/post}{/quote}  
судя по описанию - то что нужно.  
вот только выдает user-defined type  
Microsoft Office 12 Object Library подключена...  
в чем может быть проблема?
 
{quote}{login=KL}{date=27.04.2011 05:34}{thema=}{post}Возможно: http://blog.contextures.com/archives/2010/08/30/macro-creates-excel-pivot-table-from-multiple-files/{/post}{/quote}  
pivot тоже интересная тема, разбираюсь...
 
работает, НО берет данные только с первого листа книги, а их может быть до 4..  
где подправить код?  
 
Sub GetData()  
 
   Dim fso As New FileSystemObject  
   Dim aFile As File, aFolder As Folder  
   Dim wkb As Workbook, wks As Worksheet  
   Dim arr(1 To 4) As Variant  
   Dim iRow As Integer  
     
   iRow = 2  
     
   For Each aFolder In fso.GetFolder(ThisWorkbook.Path).SubFolders  
     
       For Each aFile In aFolder.Files  
           If fso.GetExtensionName(aFile.Name) Like "xls*" Then  
             
               Set wkb = Workbooks.Open(aFile.Path)  
               Set wks = wkb.Worksheets(1)  
               With wks  
                   arr(1) = .Range("e8").MergeArea.Cells(1, 1)  
                   arr(2) = .Range("g11").MergeArea.Cells(1, 1)  
                   arr(3) = .Range("d36").MergeArea.Cells(1, 1)  
                   arr(4) = .Range("e36").MergeArea.Cells(1, 1)  
               End With  
                 
               Sheet1.Cells(iRow, 1).Resize(1, 4) = arr  
               iRow = iRow + 1  
                 
               wkb.Close SaveChanges:=False  
               Set wks = Nothing  
               Set wkb = Nothing  
 
           End If  
       Next  
     
   Next  
 
End Sub
001,010,011,100,101
Страницы: 1
Читают тему
Наверх