Hi Joanna,
I just did this and tried it out with 96 sheets (empty admittedly) but no probs
Option Explicit
Sub CopySheets2()
Application.ScreenUpdating = False
Dim ThisBook As Workbook
Dim WkSht As Worksheet, NewBook As Workbook
Set ThisBook = ThisWorkbook
Set NewBook = Workbooks.Add(xlWBATWorksheet)
For Each WkSht In ThisBook.Worksheets
Select Case WkSht.Name
Case "A_datanew", "A_General", "A_ISPACEMONTH", "A_ISPACEYEAR"
'these are the sheets names which shouldn't be copied
Case Else
WkSht.Copy After:=NewBook.Sheets(NewBook.Sheets.Count)
End Select
Application.CutCopyMode = False
Next WkSht
Application.DisplayAlerts = False
Worksheets("Sheet1").Delete
Worksheets("Sheet1 (2)").Name = "Sheet1"
NewBook.SaveAs Filename:="TestItOut.xls"
End Sub
HTH
John
EDIT: Sorry Joanna, I was led astray by your "WkbNew" variable. After reading what you'd said before your code I see now you DONT want a new workbook - not to worry, if the previous code worked OK, we can now use this new book for testing for the next bit of code.
Now, make sure the new workbook "TestItOut" is closed and put this new code in the workbook you want to copy from. Make sure both workbooks are in the same folder or on the desktop...
This code will open "TestItOut" (and will give an error if it's already open) and then copy your sheets into "TestItOut". i.e. in MY test, it copied the 96 sheets from the original workbook and added them into "TestItOut" so that "TestItOut" ended up with a total of 192 worksheets - still with no problems:
Sub CopySheets2OtherBook()
Application.ScreenUpdating = False
Dim ThisBook As Workbook
Dim WkSht As Worksheet, OtherBook As Workbook
Set ThisBook = ThisWorkbook
'put TestItOut in the same folder as this one (or both on desktop)
'opens and makes Active "TestItOut"
Application.Workbooks.Open (ThisWorkbook.Path & "\TestItOut.xls")
For Each WkSht In ThisBook.Worksheets
Select Case WkSht.Name
Case "A_datanew", "A_General", "A_ISPACEMONTH", "A_ISPACEYEAR"
'these are the sheets names which shouldn't be copied
Case Else
WkSht.Copy After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
End Select
Application.CutCopyMode = False
Next WkSht
ActiveWorkbook.SaveAs Filename:="Test.xls"
End Sub