Delete sheets

S

Sverre

I have a workbook with many diefferent sheets. I need a makro to delete all
sheets except 4 sheets named:
Elevdata,
Rapportvalidering,
Kontrollark,
Samleark,

It is not possible to record a makro because the sheets can appear with
different names.

Regards Sverre
 
J

Jacob Skaria

Try the below macro and feedback. This works on the active workbook

Sub DeleteSheets()
strSheets = "Elevdata,Rapportvalidering,Kontrollark,Samleark"
Application.DisplayAlerts = False
For intTemp = Sheets.Count To 1 Step -1
If InStr(1, "," & strSheets & ",", "," & _
Sheets(intTemp).Name & ",", vbTextCompare) = 0 Then
Sheets(intTemp).Delete
End If
Next
Application.DisplayAlerts = True
End Sub
 
K

keiji kounoike

I think it is rather difficult to input sheet's name correctly. if the
number of the sheets you want to leave is a few compared to the sheets
you want to delete, first select all the sheets you want to leave, then
run the macro below.

Sub Delunselectedsheets()
Dim v As Sheets, sh As Worksheet
Dim arr()
Dim i As Long

Set v = ActiveWindow.SelectedSheets
ReDim arr(v.Count - 1)
For Each sh In v
arr(i) = sh.Name
i = i + 1
Next

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

Keiji
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top