我有一个工作簿,其中包含多个工作表,例如日期,例如12-01-2015、12-02-2015等。我想创建一个代码,以删除特定工作表的名称(如果它们的名称在数组中列出)。
我创建了一个代码,但是它不起作用。我的猜测是与以“ If”开头的行中列出的错误语句有关。
我会很感激我出问题的任何提示

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

最佳答案

这似乎可行:

Sub DeleteSelectedSheets()
   Dim i As Long
   Dim Holidays() As Variant
   Holidays = Array("12-3-2015", "12-4-2015")
       For i = Sheets.Count To 1 Step -1
           If Sheets(i).Name = Holidays(0) Or Sheets(i).Name = Holidays(1) Then
               Application.DisplayAlerts = False
                   Sheets(i).Delete
               Application.DisplayAlerts = True
           End If
       Next
End Sub

关于arrays - 如果工作表名称属于数组,则将其删除,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34292962/

10-09 02:14