Extract Excel Sheets from a Workbook
Export And Save individual sheets from a workbook using a macro (VBA Code)
This following code will export every visible worksheet into a new workbook and save the workbook with the name of the original sheet in a newly created folder in the same path as the active workbook. Follow the steps below:
Step 1: Go to File > Options and down to Customize the Ribbon and make sure the Developer option is ticked.
Step 2: Go to the Developer Tab
Step 3: Click Visual Basic
Step 4: Right click on This Workbook
Step 5: Click Insert > Module
Step 6: Paste the following code into the window
Sub SplitWorkbook() 'Updateby20140612 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