Zum Hauptinhalt springen

Wie durchläuft man Arbeitsmappen in einem Verzeichnis und kopiert Daten in ein Master-Arbeitsblatt in Excel?

Author: Siluvia Last Modified: 2025-08-06

Angenommen, Sie haben mehrere Excel-Arbeitsmappen in einem Ordner und müssen alle diese Dateien durchlaufen, um Daten aus einem bestimmten Bereich in einem konsistenten Arbeitsblatt (z. B. Blatt1) in ein Master-Arbeitsblatt zu kopieren. Dieser Leitfaden bietet eine detaillierte VBA-Lösung, um diesen Prozess in Excel zu optimieren.

Durchlaufen Sie Arbeitsmappen in einem Verzeichnis und kopieren Sie Daten mit VBA-Code in ein Master-Arbeitsblatt


Durchlaufen Sie Dateien in einem Verzeichnis und kopieren Sie Daten mit VBA-Code in ein Master-Arbeitsblatt

Wenn Sie Daten aus dem Bereich A1:D4 in allen Sheet1-Arbeitsblättern von Arbeitsmappen in einem bestimmten Ordner in ein Master-Arbeitsblatt kopieren möchten, gehen Sie bitte wie folgt vor.

1. Drücken Sie in der Arbeitsmappe, in der Sie ein Master-Arbeitsblatt erstellen möchten, die Tasten Alt + F11, um das Fenster Microsoft Visual Basic for Applications zu öffnen.

2. Klicken Sie im Fenster Microsoft Visual Basic for Applications auf Einfügen > Modul. Kopieren Sie dann den folgenden VBA-Code in das Codefenster.

VBA-Code: Durchlaufen von Dateien in einem Ordner und Kopieren von Daten in ein Master-Arbeitsblatt

Sub Merge2MultiSheets()
    Dim xRg As Range
    Dim xSelItem As Variant
    Dim xFileDlg As FileDialog
    Dim xFileName, xSheetName, xRgStr As String
    Dim xBook, xWorkBook As Workbook
    Dim xSheet As Worksheet
    On Error Resume Next
    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    xSheetName = "Sheet1"
    xRgStr = "A1:D4"
    Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker)
    With xFileDlg
        If .Show = -1 Then
            xSelItem = .SelectedItems.Item(1)
            Set xWorkBook = ThisWorkbook
            Set xSheet = xWorkBook.Sheets("New Sheet")
            If xSheet Is Nothing Then
                xWorkBook.Sheets.Add(after:=xWorkBook.Worksheets(xWorkBook.Worksheets.Count)).Name = "New Sheet"
                Set xSheet = xWorkBook.Sheets("New Sheet")
            End If
            xFileName = Dir(xSelItem & "\*.xlsx", vbNormal)
            If xFileName = "" Then Exit Sub
            Do Until xFileName = ""
               Set xBook = Workbooks.Open(xSelItem & "\" & xFileName)
                Set xRg = xBook.Worksheets(xSheetName).Range(xRgStr)
                xRg.Copy xSheet.Range("A65536").End(xlUp).Offset(1, 0)
                xFileName = Dir()
                xBook.Close
            Loop
        End If
    End With
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Hinweis:

1). Im Code bedeuten „A1:D4“ und „Sheet1“, dass Daten im Bereich A1:D4 aller Sheet1-Arbeitsblätter in das Master-Arbeitsblatt kopiert werden. Und „New Sheet“ ist der Name des neu erstellten Master-Arbeitsblatts.
2). Die Excel-Dateien im spezifischen Ordner sollten nicht geöffnet sein.

3. Drücken Sie die Taste F5, um den Code auszuführen.

4. Wählen Sie im sich öffnenden Durchsuchen-Fenster den Ordner aus, der die Dateien enthält, die Sie durchlaufen möchten, und klicken Sie dann auf die Schaltfläche OK. Siehe Screenshot:

A screenshot of the Browse dialog box in Excel for selecting a folder containing files to loop through

Ein Master-Arbeitsblatt mit dem Namen „New Sheet“ wird am Ende der aktuellen Arbeitsmappe erstellt. Und die Daten im Bereich A1:D4 aller Sheet1 im ausgewählten Ordner werden innerhalb des Arbeitsblatts aufgelistet.


Verwandte Artikel:

Die besten Office-Produktivitätstools

🤖 Kutools AI Aide: Revolutionieren Sie die Datenanalyse basierend auf: Intelligente Ausführung |  Code generieren  |  Benutzerdefinierte Formeln erstellen |  Daten analysieren und Diagramme generieren  |  Erweiterte Funktionen aufrufen
Beliebte Funktionen: Doppelte suchen, hervorheben oder markieren | Leere Zeilen löschen | Spalten oder Zellen ohne Datenverlust zusammenführen | Runden
Erweiterte SVERWEIS: SVERWEIS mit mehreren Kriterien | SVERWEIS für mehrere Werte | Mehrblatt-SVERWEIS | Fuzzy Match
Erweiterte Dropdown-Liste: Dropdown-Liste schnell erstellen | Abhängige Dropdown-Liste | Mehrfachauswahl-Dropdown-Liste
Spalten-Manager: Eine bestimmte Anzahl an Spalten hinzufügen | Spalten verschieben | Sichtbarkeit von ausgeblendeten Spalten umschalten | Bereiche & Spalten vergleichen
Hervorgehobene Funktionen: Gitterfokus | Entwurfsansicht | Erweiterte Formelleiste | Arbeitsmappen- & Blattmanager | AutoText-Bibliothek | Datumsauswahl | Daten zusammenführen | Zellen verschlüsseln/entschlüsseln | E-Mail senden nach Liste | Super Filter | Spezialfilter (Filtern nach Fett/Kursiv/Durchgestrichen...)…
Top15 Toolsets:12 Text-Tools (Text hinzufügen, Bestimmte Zeichen löschen, ...) | 50+ Diagramm typen (Gantt-Diagramm, ...) | 40+ praktische Formeln (Alter basierend auf dem Geburtsdatum berechnen, ...) | 19 Einfüge-Tools (QR-Code einfügen, Bild aus Pfad einfügen, ...) | 12 Konvertierungs-Tools (In Wörter umwandeln, Währungsumrechnung, ...) | 7 Konsolidieren & Aufteilen-Tools (Erweiterte Zeilen zusammenführen, Zellen aufteilen, ...) | ... und mehr
Nutzen Sie Kutools in Ihrer bevorzugten Sprache – unterstützt Englisch, Spanisch, Deutsch, Französisch, Chinesisch und über40 weitere Sprachen!

Steigern Sie Ihre Excel-Kompetenz mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen, um Ihre Produktivität zu steigern und Zeit zu sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...


Office Tab bringt die Reiter-Oberfläche in Office und macht Ihre Arbeit so viel einfacher

  • Aktivieren Sie die Bearbeitung und das Lesen in Reitern in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Reitern desselben Fensters, anstatt in neuen Fenstern.
  • Steigert Ihre Produktivität um50 % und reduziert täglich Hunderte von Mausklicks!