Thread: Deleting Sheets
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Norman Jones Norman Jones is offline
external usenet poster
 
Posts: 5,302
Default Deleting Sheets

Hi Oakman,

Try something like:

'=============
Public Sub DeleteSheets()
Dim WB As Workbook
Dim SH As Worksheet
Dim arr As Variant

Set WB = Workbooks("Import.xls") '<<==== CHANGE

arr = Array("Sheet1", "Sheet2", _
"Sheet3", "Sheet4") '<<==== CHANGE

Application.DisplayAlerts = False
For Each SH In WB.Worksheets
If IsError(Application.Match(SH.Name, arr, 0)) Then
SH.Delete
End If
Next SH
Application.DisplayAlerts = True

End Sub
'<<=============


--
---
Regards,
Norman



"oakman" wrote in
message ...

Greetings,

I am not at all experienced in VBA, but I thought that I'd give this a
shot. However, I cannot get it to work. I have a file in which the
first four sheets are permanent. Other sheets are created every morning
depending on a set of conditions. The number of sheets being created is
different every day. I am trying to come up with a code that would
delete every sheet after sheet 4Can some one please take a look at my
code and help me. I would appreciate it very much! Currently, I get a
Compile error for the word "Worksheets" in the line "Set Sh =
Worksheets(Array(1), (2), (3), (4))" Not quite sure what that really
means. Thank you

Sub deletesheet()

Dim x As Integer
Dim Sh As Worksheet
Dim Daysheet As Worksheet
Dim WrkBook As Workbook

x = 1
Set Sh = Worksheets(Array(1), (2), (3), (4))
Set WrkBook = Currentfile

For Each Daysheet In WrkBook
Worksheets.Delete After:=Sh

Next x

x = x + 1

End Sub


--
oakman
------------------------------------------------------------------------
oakman's Profile:
http://www.excelforum.com/member.php...fo&userid=9172
View this thread: http://www.excelforum.com/showthread...hreadid=571754