how to delete multiple tabs in vba

hi,
how can i clean up my code to delete multiple tabs? also how can i include an if statement that says only to delete if it already exists?

thanks!

Sub clear()
'Clear Tabs
Application.DisplayAlerts = False

Worksheets("GI").Delete
Worksheets("FS").Delete
Worksheets("GO").Delete
Worksheets("FI").Delete
Worksheets("EQ").Delete
Worksheets("FX").Delete
Worksheets("CO").Delete
Application.DisplayAlerts = True
'Ex_DeleteAllCharts
Worksheets("RUN").Select
End Sub

Open in new window

eastsidemarketAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Martin LissOlder than dirtCommented:
Not tested.
Dim ws As Worksheet

For Each ws in Worksheets
    Select Case ws.Name
        Case "GI", "FS" ' these are the ones to be deleted. It doesn't
                                ' matter if they exist or not
            ws.Delete
    End Select
Next

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
FaustulusCommented:
This code will delete all worksheets listed in Const SheetNames.
Option Explicit

Sub DelWorksheets()

    Const SheetNames As String = "GI,FS,GO,fi,eq,Fx,co"
    
    Dim Ws As Worksheet
    Dim Sn() As String
    Dim i As Long
    
    Sn = Split(SheetNames, ",")
    SetApplication False
    For Each Ws In ThisWorkbook.Worksheets
        For i = LBound(Sn) To UBound(Sn)
            If StrComp(Ws.Name, Sn(i), vbTextCompare) = 0 Then
                On Error Resume Next
                Ws.Delete
            End If
        Next i
    Next Ws
    SetApplication True
End Sub

Private Sub SetApplication(ByVal OnOff As Boolean)
    With Application
        .DisplayAlerts = OnOff
        .ScreenUpdating = OnOff
    End With
End Sub

Open in new window

If a sheet included in the list doesn't exist no crash will occur due to the 'On error Resume Next' instruction.
0
eastsidemarketAuthor Commented:
very nice, thanks
0
Martin LissOlder than dirtCommented:
You're welcome and I'm glad I was able to help.

Marty - MVP 2009 to 2013
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Excel

From novice to tech pro — start learning today.