我有一个工作簿,其中包含多个工作表,例如日期,例如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/