Wie durchlaufe ich Dateien in einem Verzeichnis und kopiere Daten in ein Masterblatt in Excel?
Angenommen, ein Ordner enthält mehrere Excel-Arbeitsmappen, und Sie möchten alle diese Excel-Dateien durchlaufen und Daten aus einem bestimmten Bereich gleichnamiger Arbeitsblätter in ein Master-Arbeitsblatt in Excel kopieren. Was können Sie tun? In diesem Artikel wird eine Methode vorgestellt, mit der dies im Detail erreicht werden kann.
Durchlaufen Sie Dateien in einem Verzeichnis und kopieren Sie Daten mit VBA-Code in ein Masterblatt
Durchlaufen Sie Dateien in einem Verzeichnis und kopieren Sie Daten mit VBA-Code in ein Masterblatt
Wenn Sie bestimmte Daten im Bereich A1: D4 von allen Arbeitsblättern1 in einem bestimmten Ordner in ein Masterblatt kopieren möchten, gehen Sie wie folgt vor.
1. Drücken Sie in der Arbeitsmappe ein Master-Arbeitsblatt und drücken Sie die Taste Andere + F11 Schlüssel zum Öffnen der Microsoft Visual Basic für Applikationen Fenster.
2. In dem Microsoft Visual Basic für Applikationen Klicken Sie im Fenster Insert > Modul. Kopieren Sie dann den folgenden VBA-Code in das Codefenster.
VBA-Code: Durchlaufen Sie die Dateien in einem Ordner und kopieren Sie die Daten in ein Masterblatt
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
Note:
3. Drücken Sie die Taste F5 Schlüssel zum Ausführen des Codes.
4. In der Öffnung Entdecken Wählen Sie im Fenster den Ordner mit den Dateien aus, die Sie durchlaufen möchten, und klicken Sie dann auf OK Taste. Siehe Screenshot:
Anschließend wird am Ende der aktuellen Arbeitsmappe ein Master-Arbeitsblatt mit dem Namen „Neues Blatt“ erstellt. Die Daten im Bereich A1: D4 aller Blätter1 im ausgewählten Ordner werden im Arbeitsblatt aufgelistet.
In Verbindung stehende Artikel:
Beste Office-Produktivitätstools
Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor. Kutools für Excel bietet über 300 erweiterte Funktionen, um die 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 Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich
- Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
- Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!