多语言展示
当前在线:1660今日阅读:57今日分享:41

Excel:如何按指定条件批量删除工作表?

今给大家分享的VBA小代码是批量删除工作表。先说一下如何无条件的支持删除工作表,也就是删除全部工作表(仅保留不得不保留的最后一张工作表)。然后再说一下如何有条件的删除工作表。
方法/步骤
1

1,先说一下如何无条件的支持删除工作表,也就是删除全部工作表(仅保留不得不保留的最后一张工作表)。代码如下:Sub DelShet() '删除所有工作表     Dim sht As Worksheet     Application.ScreenUpdating = False '关屏幕刷新     Application.DisplayAlerts = False '关警告信息     On Error Resume Next     For Each sht In Worksheets         sht.Delete '遍历工作表删除     Next     Application.ScreenUpdating = True     Application.DisplayAlerts = True End Sub

2

然后再说一下如何有条件的删除工作表。如下图所示,一个工作簿内包含了多张工作表,需要按你的任意规则对其删除其中一部分。

4

结果如下图所示。

5

2,对需要删除的工作表,使用函数等方法,在B列标记“删除”。

6

3,复制运行以下代码,即可完成对B列标记“删除”的文件批量删除。Sub DelShtByVba()     Dim sht As Worksheet, i As Long, r     Application.ScreenUpdating = False     Application.DisplayAlerts = False     On Error Resume Next     r = Range('a1').CurrentRegion '数据装入数组r     For i = 2 To UBound(r) '遍历并删除工作表         If r(i, 2) = '删除' Then Worksheets(CStr(r(i, 1))).Delete     Next     Application.ScreenUpdating = True     Application.DisplayAlerts = True End Sub

7

代码三五行,工作不用忙断肠,你也试一下吧~如果你还不懂得如何运行VBA代码,可以参考:如何运行VBA代码 依次点击菜单【进阶教程】→【VBA常用代码】可以获取更多实用VBA小代码。

8

个人建议代码会将隐藏的工作表也删除,但我们不可能将全部工作表删除,系统要求一个工作簿必须存在至少一张非隐藏的工作表。

推荐信息