TOP

Culegere de fișe de lucru

Descriere

Uneori trebuie să combinăm foi din diferite registre de lucru Excel pentru a crea un nou raport sau un fișier de date consolidate. O astfel de operațiune poate fi făcută manual, folosind instrumente standard MS Excel, dar poate dura mult timp și efort. Să luăm în considerare modul în care putem automatiza acest proces și cum putem accelera munca cu rapoarte.

De exemplu, avem multe cărți de lucru Excel și vrem să facem colecție de fișe de lucru din toate cărțile într-un singur fișier. Pentru a face acest lucru, deschideți registrul de lucru în care doriți să colectați toate foile și adăugați următorul cod macro.


Codul VBA pentru macrocomandă

Cu registrul de lucru Excel deschis, unde doriți să colectați toate foile, deschideți Visual Basic Editor (Alt+F11), inserați modulul VBA ( Insert - Module ) și copiați acest cod macro acolo:

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 " Nu a fost selectat niciun fișier! "
        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

După aceea, puteți reveni la Excel și puteți rula macrocomandă prin meniu Tools - Macro - Macros (Alt+F8) . Va apărea o casetă de dialog, în care trebuie să selectați unul sau mai multe fișiere (ținând apăsat Ctrl), ale căror foi dorim să le adăugăm la registrul de lucru curent.

Dacă utilizați o altă extensie de fișier Excel (de exemplu, *.xlsx, *.xlsm, *.xlsb etc.), atunci va trebui să faceți modificările corespunzătoare la a noua linie a codului macrocomenzii noastre.

Articole pe tema: