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.