Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Delete sheets if their names belong to an array

Tags:

arrays

excel

vba

I have a workbook with multiple sheets named like dates e.g 12-01-2015, 12-02-2015, .... etc. I would like to create a code that deletes specific sheets if their names are listed in an array. I created a code but it does not work. My guess is it is related to incorrect statement listed in line starting with "If". I would really appreciate any tip where I am going wrong

Sub DeleteSelectedSheets()

Dim i As Long
Dim Holidays() As Variant

Holidays = Array("12-3-2015", "12-4-2015")

    For Each Worksheet In ActiveWorkbook

        If Worksheet(i).Name = Holidays(i) Then

            Application.DisplayAlerts = False

                Sheets(i).Delete

            Application.DisplayAlerts = True

        End If

    Next

End Sub
like image 982
Trix Avatar asked Jan 18 '26 20:01

Trix


2 Answers

Sub DeleteSelectedSheets()

Dim Holidays As Variant
Holidays = Array("Sheet1", "Sheet3", "Sheet5")

For Each Sheet In ThisWorkbook.Sheets
    If UBound(Filter(Holidays, Sheet.Name)) > -1 Then
       Application.DisplayAlerts = False
       Sheet.Delete
       Application.DisplayAlerts = True
    End If     
Next
End Sub
like image 64
Raystafarian Avatar answered Jan 21 '26 07:01

Raystafarian


This should work just fine!

With the exception, that will happen regardless the code you are using, where there is only one sheet left and you are trying to delete it, it'll throw an error message!

See the use of LBound() and UBound() :

Sub DeleteSelectedSheets()

Dim i As Long
Dim Holidays() As Variant
Dim wS As Worksheet

Holidays = Array("12-3-2015", "12-4-2015")

For Each wS In ActiveWorkbook
    For i = LBound(Holidays) To UBound(Holidays)
        If wS.Name <> Holidays(i) Then
        Else
            Application.DisplayAlerts = False
                wS.Delete
            Application.DisplayAlerts = True
            Exit For
        End If
    Next i
Next wS

End Sub
like image 28
R3uK Avatar answered Jan 21 '26 08:01

R3uK



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!