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

如何用VBA删除名称匹配"M######"格式的所有工作表?

解决VBA删除特定格式工作表的问题

嘿,我明白你卡在哪了——你原来的代码用=来匹配工作表名称,这是精确匹配,只会删掉名字刚好是"M######"的工作表,而不是你要的那种以M开头、后面跟6位数字的表!

VBA里要识别通配符模式,得用Like关键字才行,刚好#就是用来匹配单个数字的通配符,完美符合你的需求。我给你修正后的代码,还加了关闭删除提示的设置,避免删表时不停弹确认框:

Sub DeleteMSheets()
    ' 关闭删除工作表的确认提示框
    Application.DisplayAlerts = False
    
    Dim s As Worksheet
    ' 遍历工作簿里的所有工作表
    For Each s In ActiveWorkbook.Sheets
        ' 判断工作表名称是否符合"M开头+6位数字"的格式
        If s.Name Like "M######" Then
            s.Delete
        End If
    Next s
    
    ' 恢复提示框显示
    Application.DisplayAlerts = True
End Sub

几点小提醒:

  • 运行代码前,确保工作簿里至少保留1个工作表(Excel不允许删除所有工作表),不然会报错
  • 如果你不确定匹配规则对不对,可以先把s.Delete改成MsgBox s.Name,先弹出符合条件的表名验证一下,没问题再改成删除操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:25:21