Ich habe diesen Code in der Website von extendoffice gefunden. Jedoch erfüllt es nicht, was ich mit den Blättern machen muss. Ich habe hier leider auch gesucht, es entspricht auch nicht meinen Anforderungen.Mehrere Blätter in eine Arbeitsmappe kopieren
Der folgende Code funktioniert gut, aber es spart jedes Arbeitsblatt als einzelne Arbeitsmappe. Grundsätzlich habe ich 4 Blätter in meinem Hauptarbeitsbuch. Das Ergebnis ist, dass jedes Blatt als eine Arbeitsmappe gespeichert wird. Ich wollte, dass es dasselbe ist (Speichern in einem Ordner), aber Arbeitsblätter sollten in einer Arbeitsmappe gespeichert werden.
Sub SplitWorkbook()
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim xWs As Worksheet
Dim xWb As Workbook
Dim FolderName As String
Application.ScreenUpdating = False
Set xWb = Application.ThisWorkbook
DateString = Format(Now, "yyyy-mm-dd hh-mm-ss")
FolderName = xWb.Path & "\" & xWb.Name & " " & DateString
MkDir FolderName
For Each xWs In xWb.Worksheets
xWs.Copy
If Val(Application.Version) < 12 Then
FileExtStr = ".xls": FileFormatNum = -4143
Else
Select Case xWb.FileFormat
Case 51:
FileExtStr = ".xlsx": FileFormatNum = 51
Case 52:
If Application.ActiveWorkbook.HasVBProject Then
FileExtStr = ".xlsm": FileFormatNum = 52
Else
FileExtStr = ".xlsx": FileFormatNum = 51
End If
Case 56:
FileExtStr = ".xls": FileFormatNum = 56
Case Else:
FileExtStr = ".xlsb": FileFormatNum = 50
End Select
End If
xFile = FolderName & "\" & Application.ActiveWorkbook.Sheets(1).Name & FileExtStr
Application.ActiveWorkbook.SaveAs xFile, FileFormat:=FileFormatNum
Application.ActiveWorkbook.Close False
Next
MsgBox "You can find the files in " & FolderName
Application.ScreenUpdating = True
End Sub