View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Chip Pearson[_2_] Chip Pearson[_2_] is offline
external usenet poster
 
Posts: 95
Default select and delete sheets

Try something like the following

Dim WS As Worksheet
Application.DisplayAlerts = False
Application.ScreenUpdating = False
For Each WS In Worksheets
If WS.Name < ActiveSheet.Name Then
WS.Delete
End If
Next WS
Application.DisplayAlerts = True
Application.ScreenUpdating = True



--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com

"Locachica" wrote in message
...

Hello!
I am new here.. have recently got into excel+vba. I have searched first
to see if I found an answer to my question.. but so far: nothing. So
sorry if I just didn't search enough and this question has appeared
before!

I want to write a macro that selects all the sheets in a workbook
EXCEPT the active one (which can be ANY of the sheets) and deletes
them, so I don't have to go manually and select them one by one..
sometimes the files have just 3 sheets, but others they have over 40..


This is what I wrote so far,

Sub DeleteSheets()
Dim a, i, NrWs as Integer
a = Workbooks.Count
NrWs = Worksheets.Count
For i = 1 To NrWs
Workbooks(a).Worksheets(i).Select
ActiveWindow.SelectedSheets.Delete
Next i
End Sub


When I run this macro, it deletes 3 of the sheets, but when it reaches
the 4th I get the following error:

Run-Time Error '9':
Subscript out of range

So I don't know what to do from here :(

Hope sb can help!!

Thanks a lot!

/J


------------------------------------------------
~~ Message posted from http://www.ExcelTip.com/
~~View and post usenet messages directly from http://www.ExcelForum.com/