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 Standard-MS-Tools 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 beispielsweise viele Arbeitsmappen Excel und möchten Arbeitsblätter aus allen Arbeitsmappen in einer Datei sammeln. Öffnen Sie dazu die Arbeitsmappe, in der Sie alle Blätter sammeln möchten, und fügen Sie den folgenden Makrocode hinzu.
Öffnen Sie in der geöffneten Arbeitsmappe Excel, in der Sie alle Blätter sammeln möchten, Visual Basic Editor (Alt+F11), fügen Sie das VBA-Modul (Insert - Module) hinzu und Kopieren Sie dieses Code-Makro dorthin:
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 "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ü Tools - Macro - Macros (Alt+F8) ausführen. 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 Codezeile in unserem Makro vornehmen.