Excel - So kopieren Sie alle Blätter von einer Arbeitsmappe in eine andere

Excel - So kopieren Sie alle Blätter von einer Arbeitsmappe in eine andere

ich habe eine Arbeitsmappe namens „Test“. Ich möchte alle Blätter in einer Arbeitsmappe namens „Schätzung“ nach „Test“ kopieren. Ich weiß nicht, wie ich die Liste der Blätter in „Schätzung“ erstelle, die nach „Test“ kopiert werden können. Gibt es eine Möglichkeit, das in VBA zu tun?

Antwort1

Halten:

Sub dural()
   Dim b1 As Workbook, b2 As Workbook
   Dim sh As Worksheet

   Workbooks.Open Filename:="C:\TestFolder\test.xls"
   Set b1 = ActiveWorkbook
   Workbooks.Open Filename:="C:\TestFolder\estimate.xls"
   Set b2 = ActiveWorkbook

   For Each sh In b2.Sheets
      sh.Copy after:=b1.Sheets(b1.Sheets.Count)
   Next sh
End Sub

Antwort2

Hiermit werden sie aufgelistet

Sub list()
Dim wbEstimate As Workbook
Set wbEstimate = ThisWorkbook
Dim wsList As Worksheet
Dim numSheets As Integer
numSheets = wbEstimate.Sheets.Count
Worksheets.Add(After:=Worksheets(numSheets)).Name = "list"
Set wsList = Worksheets("list")
Dim i As Integer
i = 1

For Each Sheet In wbEstimate.Worksheets
    wsList.Cells(i, 1) = Sheet.Name
    i = i + 1
Next
End Sub

Und das sollte sie kopierenwenn beide offen sind

Sub list()
Dim wbEstimate As Workbook
Set wbEstimate = ThisWorkbook
Dim wbTest As Workbook
Set wbTest = Workbooks("test.xlsx")

For Each Sheet In wbEstimate.Sheets
    Sheet.Copy after:=wbTest.Sheets(wbTest.Sheets.Count)
Next
End Sub

Und wenn Sie die Testversion öffnen müssen, bevor Sie Blätter kopieren, gehen Sie folgendermaßen vor:

Sub list()
Dim wbEstimate As Workbook
Set wbEstimate = ThisWorkbook
Dim wbTest As Workbook
Set wbTest = Workbooks.Open("C:\Users\path\to\test.xlsx")

For Each Sheet In wbEstimate.Sheets
    Sheet.Copy after:=wbTest.Sheets(wbTest.Sheets.Count)
Next
End Sub

verwandte Informationen