Manchmal müssen wir Blätter aus verschiedenen Excel-Arbeitsmappen kombinieren, um einen neuen Bericht oder eine konsolidierte Datendatei zu erstellen. Ein solcher Vorgang kann manuell mit Standardtools von MS Excel durchgeführt werden, kann jedoch viel Zeit und Mühe kosten. Überlegen wir, wie wir diesen Prozess automatisieren und die Arbeit mit Berichten beschleunigen können.
Wir haben zum Beispiel viele Arbeitsmappen Excel und möchten diese erstellen Sammlung von Arbeitsblättern aus allen Büchern in eine Datei. Öffnen Sie dazu die Arbeitsmappe, in der Sie alle Blätter sammeln möchten, und fügen Sie den folgenden Makrocode hinzu.
Öffnen Sie bei geöffneter Excel-Arbeitsmappe, in der Sie alle Blätter sammeln möchten, den Visual Basic Editor (Alt+F11). Modul VBA einfügen ( Insert - Module ) und kopieren Sie diesen Makrocode dorthin:
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 " Es wurde keine Datei ausgewählt! " 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
Danach können Sie zu Excel zurückkehren und unser Makro über das Menü ausführen Tools - Macro - Macros (Alt+F8) . Es erscheint ein Dialogfeld, in dem Sie (bei gedrückter Strg-Taste) eine oder mehrere Dateien auswählen müssen, deren Blätter wir zur aktuellen Arbeitsmappe hinzufügen möchten.
Wenn Sie eine andere Excel-Dateierweiterung verwenden (z. B. *.xlsx, *.xlsm, *.xlsb usw.), müssen Sie die entsprechenden Änderungen an der neunten Zeile unseres Makrocodes vornehmen.