Kopieren Sie verschiedene Arbeitsblätter aus verschiedenen Arbeitsmappen vba

Kopieren Sie verschiedene Arbeitsblätter aus verschiedenen Arbeitsmappen vba

Ich habe ein Makro, das Arbeitsblätter kopiert und dann als neu speichert.

Ich möchte jedoch zwei Arbeitsblätter kopieren und dann zu einem zusammenführen, die Arbeitsblätter befinden sich jedoch in zwei unterschiedlichen Arbeitsmappen.

Beispiel: Arbeitsmappe1 enthält 2 Arbeitsblätter (Arbeitsblatt1, Arbeitsblatt2) Arbeitsmappe2 enthält 3 Arbeitsblätter (Arbeitsblatt1, Arbeitsblatt2, Arbeitsblatt3)

Ich möchte Arbeitsblatt1 aus Arbeitsmappe1 und Arbeitsblatt1 aus Arbeitsmappe2 kopieren und sie dann kombinieren, da beide dasselbe Tabellenformat haben.

Ich weiß nicht wie. Ich weiß nur, wie man mehrere Arbeitsblätter aus derselben Arbeitsmappe kopiert. Ich weiß auch, wie man sie kombiniert. Mein einziges Problem ist, wie ich beide Arbeitsblätter 1 aus unterschiedlichen Arbeitsmappen kopieren kann, nämlich Arbeitsmappe 1 und Arbeitsmappe 2.

Ich habe nur einfachen Code zum Kopieren der Daten. Hier ist übrigens mein Code:

saveFolder = "C:\Document\Macro"

path = "C:\Document\Workbook1"
fname = "Sample Account.xlsx"

Workbooks.Open path & fname
Sheets("Account1").Copy

ActiveWorkbook.SaveAs saveFolder & "\Conso.xlsx", FileFormat:=51
Workbooks(fname).Close

Die andere Datei befindet sich im OrdnerArbeitsmappe2Der Dateiname lautetZusätzliche Konten

Antwort1

Mit diesem VBA-Code (Makro) können Sie das Arbeitsblatt Ihrer Wahl aus der Quellarbeitsmappe kopieren und in der aktiven Arbeitsmappe integrieren.

Dieser Code ist interaktiv und kein Standardcode, was den Code vielseitig einsetzbar macht.

Sub CombineSheets()
    Dim sPath As String
    Dim sFname As String
    Dim wBk As Workbook
    Dim wSht As Variant

    Application.EnableEvents = False
    Application.ScreenUpdating = False

   sPath = InputBox("Enter File Path Of Source Workbook(s)")

   ChDir sPath

   sFname = InputBox("Enter the Filename")

   sFname = Dir(sPath & "\" & sFname & ".xl*", vbNormal)

   wSht = InputBox("Enter Worksheet Name To Copy")

   Do Until sFname = ""

       Set wBk = Workbooks.Open(sFname)
        Windows(sFname).Activate
        Sheets(wSht).Copy Before:=ThisWorkbook.Sheets(1)
        wBk.Close False
        sFname = Dir()
    Loop
    ActiveWorkbook.Save
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub

Wie es funktioniert:

  • Kopieren Sie diesen Code und fügen Sie ihn als Standardmodul in die Master-Arbeitsmappe ein (in der Sie Blätter kombinieren möchten).
  • Führen Sie das Makro aus.
  • Zuerst wird nach einem Pfad zu den Quellarbeitsmappen gefragt.

Notiz,Kopieren und fügen Sie den Dateipfad besser ein.

  • Fragen Sie dann nach dem Namen der Arbeitsmappe. Sie können auch Platzhalter oder einen Arbeitsmappennamen wie verwenden Myworkbook.

  • Abschließend werden Sie aufgefordert, den Blattnamen zu kopieren.

verwandte Informationen