No it is not. My bad.
There is no Sum sheetname, you want to check if Sum is in name, so this way:
Sub SplitEachWorksheet()
Dim ws As Worksheet
Dim Fpath As String
Fpath = ThisWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Worksheets
If InStr(1, ws.Name, "Sum", vbBinaryCompare) <> 0 Or _
InStr(1, ws.Name, "3", vbBinaryCompare) <> 0 Or _
InStr(1, ws.Name, "4", vbBinaryCompare) <> 0 Or _
InStr(1, ws.Name, "5", vbBinaryCompare) <> 0 Or _
InStr(1, ws.Name, "6", vbBinaryCompare) <> 0 Or _
InStr(1, ws.Name, "7", vbBinaryCompare) <> 0 Or _
InStr(1, ws.Name, "8", vbBinaryCompare) <> 0 Or _
InStr(1, ws.Name, "9", vbBinaryCompare) <> 0 Then
Debug.Print ws.Name
Dim wb As Workbook
Set wb = ws.Application.Workbooks.Add
ws.Copy Before:=wb.Sheets(1)
wb.Sheets(2).Delete
With wb.Sheets(1).UsedRange
.Value = .Value
End With
wb.Sheets(1).Name = ws.Name
wb.SaveAs Fpath & "\" & ws.Name, Excel.XlFileFormat.xlOpenXMLWorkbook
wb.Close
Set wb = Nothing
End If
Next ws
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
p.s. Could you edit your post instead of creating 3 in a row in few minutes, please?
Bookmarks