1. you has ".xlxs" and it should be ".xlsx"
2. This loops through the worksheets and creates a new workbook for each worksheet, save the WB as the sheet name
3. I added a automatic delete if the WB exists
4. I added a date stamp to the WB name (just because I like to) but you can delete that if you don't want
You'll have to integrate this, changing some things, into your over all project
Option Explicit Sub Macro1() Dim ws As Worksheet Dim wb1 As Workbook, wb2 As Workbook Dim sName As String Application.ScreenUpdating = False Set wb1 = ThisWorkbook For Each ws In wb1.Worksheets ws.Copy Set wb2 = ActiveWorkbook sName = wb1.Path & Application.PathSeparator & ActiveSheet.Name & Format(Date, "-yyyy-mm-dd") & ".xlsx" On Error Resume Next Kill sName On Error GoTo 0 wb2.SaveAs sName, FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False wb2.Close Next Application.ScreenUpdating = True End Sub




Reply With Quote