ВВЕРХ

Сбор рабочих листов

YouLibreCalc for Excel logo

Описание

Иногда нам нужно собрать листы из разных книг Эксель для создания нового отчета или файла с консолидированными данными. Такую операцию можно проделать и вручную, стандартными средствами MS Excel, однако это может занять много времени и сил. Давайте рассмотрим, как мы можем автоматизировать этот процесс и ускорить работу с отчетами.

Например, у нас много рабочих книг Excel, и хотим сделать сбор рабочих листов из всех книг в один файл. Для этого откройте книгу, куда хотите собрать все листы и добавьте следующий код макроса.


VBA код для макроса

В открытой книге Excel, куда вы хотите собрать все листы, откройте Visual Basic Editor (Alt+F11), вставьте модуль VBA ( Insert - Module ) и скопируйте этот код макроса туда:

Sub CombineWorkbooks()
    'moonexcel.com.ua
    Dim FilesToOpen
    Dim x As Integer
    
    On Error GoTo ErrHandler
    Application.ScreenUpdating = False
    
    FilesToOpen = Application.GetOpenFilename _
                  (FileFilter:="Microsoft Excel Files (*.xls), *.xls", _
                   MultiSelect:=True, Title:="Files to Merge")
                   
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox " Не выбран файл! "
        GoTo ExitHandler
    End If
    
    x = 1
    While x <= UBound(FilesToOpen)
        Workbooks.Open Filename:=FilesToOpen(x)
        Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        x = x + 1
    Wend
    
    ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub
    
    ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
    
End Sub

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

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

Статьи по теме: