Wie kombiniere ich mehrere excel-arbeitsmappen mit vba?

Um mehrere Excel-Arbeitsmappen zu kombinieren, müssen Sie Code verwenden, mit dem Sie auswählen können, welche Dateien Sie kombinieren möchten, oder Sie können auf einen bestimmten Pfad verweisen und alle Excel-Dateien in der aktuellen Arbeitsmappe kombinieren.

VBA kombiniert mehrere Arbeitsmappen

Sie können den folgenden Code verwenden, der den Speicherort verwendet, den ich in der Pfadvariablen angegeben habe (einen Ordner auf meinem Systemdesktop).

 Dim Path As String Dim Filename As String Dim Sheet As Worksheet Path = "C:UsersDellDesktopsample-data" Filename = Dir(Path & "*.xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop

Schritte zum Kombinieren von Excel-Dateien mit VBA

  1. Öffnen Sie den Visual Basic-Editor (stellen Sie sicher, dass Sie die Registerkarte „Entwickler“ aktivieren, wenn Sie sie bereits in der Multifunktionsleiste haben).
    open the visual basic editor
  2. Suchen Sie anschließend die aktuelle Arbeitsmappe im Projektfenster (Strg + R) und fügen Sie ein neues Modul ein.
    locate the current workbook
  3. Im Modul wird ein Codefenster angezeigt (doppelklicken Sie darauf), in das Sie den vorhandenen Code (so wie er ist) einfügen müssen.
    code window in the module
  4. Von hier aus müssen Sie den Wert der Pfadvariablen mit dem Ordnerspeicherort ändern, in dem sich alle Excel-Dateien befinden, die Sie kombinieren möchten.
    change the value for the path variable
  5. Führen Sie am Ende den Code aus und Sie erhalten alle Arbeitsblätter in der Arbeitsmappe in der aktuellen Datei.

Nützliche Links: Ausführen eines MakrosMakrorecorderVisual Basic EditorHandbuch zu persönlichen Makros

Dieser Code öffnet jede Datei einzeln, kopiert jedes Arbeitsblatt einzeln und fügt es in die aktuelle Datei mit demselben Namen ein. Hier ist derselbe Code, aber der Bildschirm wird zu Beginn auf „false“ aktualisiert, um alles im Backend auszuführen.

 Dim Path As String Dim Filename As String Dim Sheet As Worksheet Application.ScreenUpdating = False Path = "C:UsersDellDesktopsample-data" Filename = Dir(Path & "*.xlsx") Do While Filename <> "" Workbooks.Open Filename:=Path & Filename, ReadOnly:=True For Each Sheet In ActiveWorkbook.Sheets Sheet.Copy After:=ThisWorkbook.Sheets(1) Next Sheet Workbooks(Filename).Close Filename = Dir() Loop Application.ScreenUpdating = True End Sub

Hinweis: Wenn Sie erfahren möchten, wie Sie Daten aus mehreren Arbeitsmappen in einer einzigen Tabelle kombinieren, lesen Sie unbedingt diese Anleitung.

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert