arrays - 如果工作表的名称属于数组,则删除工作表

标签 arrays vba excel

我有一个工作簿,其中有多个工作表,其名称类似于日期,例如 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 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

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

相关文章:

excel - VBA 自动筛选条件 : apply if ALL cells in current range/row is blank

python - 从包含 RGB 图像数据的 1-dim 数组中检索 RGB 图像

vba - 是否可以将范围传递给用户表单属性?

excel - 使用 Excel OnKey 而不覆盖默认按键行为

excel - 如何检查当前单元格是否在表格的第一行?

c# - 转换 asp :Table to excel format

arrays - 如何在 Swift 中将数组拆分为元素数量始终不同的部分?

javascript - 根据 Google Apps 脚本中的另一个数组过滤数组

javascript - 在 promise 回调中发送数组响应,但响应为空

vba - 带有排除过滤器的打开文件对话框 (Excel VBA)