You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改VBA代码实现保留指定多个工作表并删除其余工作表

修改VBA代码以保留多个指定工作表

没问题,我帮你调整这段VBA代码,让它能轻松适配需要保留6个(或更多)工作表的需求,不用写一堆And连接的繁琐判断条件~

核心思路

把需要保留的工作表名放到一个数组里,遍历所有工作表时,检查当前工作表的名字是否在这个数组中——如果不在,就删除它。这种写法不仅简洁,后续要增减保留的工作表,只需要修改数组里的内容就行,非常灵活。

修改后的完整代码

Sub DeleteSheets1()
    Dim xWs As Worksheet
    Dim keepSheets As Variant
    ' 把需要保留的工作表名放到这个数组里,用英文逗号分隔,注意引号
    keepSheets = Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5", "Sheet6")
    
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    
    For Each xWs In Application.ActiveWorkbook.Worksheets
        ' 检查当前工作表名是否不在保留列表中
        If IsError(Application.Match(xWs.Name, keepSheets, 0)) Then
            xWs.Delete
        End If
    Next xWs
    
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
End Sub

小提示

  • 你只需要修改keepSheets = Array(...)里的内容,把实际要保留的工作表名填进去就行,数量多少都没问题
  • 执行代码前一定要备份工作簿,因为删除工作表的操作是不可逆的
  • VBA里工作表名的匹配默认不区分大小写,但最好和工作簿里的实际表名完全一致,避免意外删除

内容的提问来源于stack exchange,提问作者Majid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:38:58