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ție se poate face 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 accelera munca cu rapoarte.

De exemplu, avem multe registre de lucru Excel și dorim să colectăm foi de lucru din toate registrele de lucru î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), introduceți modulul VBA (Insert - Module) și copiați acest cod macro acolo:

Sub CombineWorkbooks()
    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 meniul 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 de cod din macrocomandă.

Articole pe tema: