Wie durchläuft man Arbeitsmappen in einem Verzeichnis und kopiert Daten in ein Master-Arbeitsblatt in Excel?
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 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:
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:
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:
Beste Büroproduktivitätswerkzeuge
Verbessern Sie Ihre Excel-Fähigkeiten mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über300 erweiterte Funktionen zur Steigerung der Produktivität und Zeitersparnis. Klicken Sie hier, um die Funktion zu erhalten, die Sie am meisten benötigen...
Office Tab bringt eine Registerkartenoberfläche zu Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie die Bearbeitung und das Lesen mit Registerkarten in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters, anstatt in neuen Fenstern.
- Steigert Ihre Produktivität um50 % und reduziert täglich hunderte von Mausklicks für Sie!