Как собрать несколько книг Excel в одну? - Excel.su

Например, мы имеем много рабочих книг Excel, и мы хотим собрать все рабочие листы со всех рабочих книг в один файл. Для этого откройте книгу, куда вы хотите собрать все листы, откройте Visual Basic Editor ( Alt + F11 ), добавьте новый бланк модуля ( Insert — Module ) и скопируйте текст макроса туда:

  1.  Sub CombineWorkbooks()  
  2.     Dim FilesToOpen  
  3.     Dim x As Integer  
  4.     On Error GoTo ErrHandler  
  5.     Application.ScreenUpdating = False  
  6.     FilesToOpen = Application.GetOpenFilename _  
  7.                   (FileFilter:=«Microsoft Excel Files (*.xls), *.xls», _  
  8.                    MultiSelect:=True, Title:=«Files to Merge»)  
  9.     If TypeName(FilesToOpen) = «Boolean» Then  
  10.         MsgBox «Have been chosen no files!»  
  11.         GoTo ExitHandler  
  12.     End If  
  13.     x = 1  
  14.     While x <= UBound(FilesToOpen)  
  15.         Workbooks.Open Filename:=FilesToOpen(x)  
  16.         Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)  
  17.         x = x + 1  
  18.     Wend  
  19. ExitHandler:  
  20.     Application.ScreenUpdating = True  
  21.     Exit Sub  
  22. ErrHandler:  
  23.     MsgBox Err.Description  
  24.     Resume ExitHandler  
  25. End Sub  

После этого можете вернуться в Excel и запустить макрос через меню Tools — Macro — Macros (Alt + F8) . Появится диалоговое окно, где нужно выбрать один или несколько (удерживая Ctrl ) файлов, листы из которых мы хотим добавить к текущей книги.

Если вы используете другое расширение Excel файлов (например, *.xlsx, *.xlsm, *.xlsb и т.п.), то вам необходимо будет внести соответствующие изменения в седьмую строку кода макроса.

Рубрики: Советы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *