首页 > 解决方案 > 有没有办法删除特定索引/位置之后的工作表?

问题描述

希望以编程方式删除第 X 个电子表格之后的所有工作表,其顺序由我在 Excel 中直观地看到的方式完成(首先是最左边的电子表格)。因此,如果我想在第 4 个电子表格之后删除任何内容,我想删除第 5 个工作表及其之后的所有内容。

看起来该Sheets对象没有索引或位置类型的对象。我正在考虑另一种解决方案,即创建前 4 个电子表格的名称数组并循环遍历电子表格的所有名称并检查它们是否不在要删除的数组中,但这可能比检查索引花费更长的时间地点。

没有那个循环有没有办法做到这一点?

标签: excelvba

解决方案


这应该可以满足您的需求。

If Sheets.Count >= 5 Then
    For sht = Sheets.Count To 5 Step -1
        'If Sheets(sht).Name = "some name" Then   '''USE THIS IF YOU KNOW THE SHEET NAMES
            Application.DisplayAlerts = False
            Sheets(sht).Delete
            Application.DisplayAlerts = True
        'End If
    Next
End If

推荐阅读