![Excel - So kopieren Sie alle Blätter von einer Arbeitsmappe in eine andere](https://rvso.com/image/1476422/Excel%20-%20So%20kopieren%20Sie%20alle%20Bl%C3%A4tter%20von%20einer%20Arbeitsmappe%20in%20eine%20andere.png)
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