实用VBA:16.一键批量删除工作表

1.需求场景

在汇总数据时,我们有时候会把大量的工作表复制到同一个工作簿中,待全部数据汇总到一个表里之后,原来的大量分表就成了冗余信息,既占用文件存储空间又显得文件凌乱,影响工作体验。例如上一篇我们汇总过的年工作报表。汇总过之后我希望能一键删除全部的分表。

2.解决思路

简单的办法是先选中第一个表的标签,然后按住Shift向右拖动水平滚动条到尽头,再点击最后一个表的标签,就把所有分表批量选中了,然后再在选中表标签上点右键,选"删除"。但这样的问题是表格数量少的时候可以这样处理,以前处理300多个表的时候,拖动滚动条都拖到怀疑人生。等最后一个表标签选中的时候,视觉上在当前屏幕显示范围内的表都被选中了,又开始自我怀疑,"最前面的表格有没有不小心被误选上呢?"

所以还是用VBA来批量删除比较省心。思路也比较简单,在表格从左到右的排序上把需要删除的表格集中放到最右侧,需要保留的表格在左侧。表格的索引号信息是按这个顺序排序的,只需要确定首个需要删除的表在第几位就可以了。循环判断全部表数量,如果数量≥首个删除表的索引号,就把最后一个表删除。这样的运行效果就是从右向左逐一删除掉不需要的工作表。

3.VBA实现

在上例中,第3个表以后的我都需要删除掉,所以令iStart=3。

vbnet 复制代码
    Dim wb As Workbook          '工作簿变量

    Dim shTmp As Worksheet      '工作表变量

    Dim iStart As Integer       '待删除表格的起始索引号

    

Public Sub 批量删除工作表()

    '工作簿变量设置为当前工作簿

    Set wb = Workbooks(1)

    '待删除表格的起始索引号赋值

    iStart = 3

    '关闭屏幕刷新

    Application.ScreenUpdating = False

    '关闭警告信息

    Application.DisplayAlerts = False

    '从最后一个表判断是否在删除范围内

    Do While Sheets.Count >= iStart

        '设置临时表为最后一个表

        Set shTmp = Worksheets(Sheets.Count)

        '输出调试信息

        Debug.Print "删除表格索引号:" & shTmp.Index & "表名:" & shTmp.Name

        '删除表格

        shTmp.Delete

    Loop

    '开启屏幕刷新

    Application.ScreenUpdating = True

    '释放工作表变量

    Set wb = Nothing

    '输出提示信息

    MsgBox "工作表已批量删除。"

End Sub

4.运行效果

从输出的调试信息也可以看到,表格是按从右向左的顺序逐一删除的。

在此基础上,我们可以进一步添加条件,来批量删除符合特定条件的工作表:例如从多个文件批量汇总表格到一个文件中时候带过来了很多空白表,Sheet2、Sheet3、Sheet2(2)、Sheet3(2)之类的;或者需要将工作表名称中包含特定部门、地区等特定字符信息的表格删除;或者我们可以列出一个所有表格的清单,按清单筛选出需要删除的表,根据表名称批量删除......后续慢慢和大家分享。

喜欢的话欢迎关注、点赞、转发或评论交流!

点赞富三代,分享美一生! ^|^

往期列表:

实用VBA:1.向下填充空白单元格

实用VBA:2.隔行插入空白行

实用VBA:3.向下合并空白单元格

实用VBA:4.按列拆分工作表

实用VBA:5.批量汇总工作簿、合并工作表

实用VBA:6.一键批量提取文件名和存储路径

实用VBA:7.按文件列表一键汇总excel工作簿

实用VBA:8.一键输出多表格为单独文件

实用VBA:9.使用Excel批量套模板,一键输出多个工作表

实用VBA:10.用VBA向Excel文件中自动插入图片

实用VBA:11.用Excel自动生成商品调拨单

实用VBA:12.用VBA将txt文本文件导入Excel表格

实用VBA:13.Excel数据批量套模板输出pdf文件

实用VBA:14.修改word文件"创建内容的时间"属性

实用VBA:15 一键批量汇总工作表的更优方法

相关推荐
E-iceblue2 天前
Excel 列转行/行列转换全指南:从 4 种常见解法到 Python 批量自动化
python·excel·python库·spire.xls
宝桥南山2 天前
Microsoft Fabric - 简单尝试一下Microsoft Fabric .NET SDK
microsoft·微软·.net·.netcore·powerbi·fabric
hqyjzsb2 天前
规划工商管理大学成长:搭建四层能力体系,重视高阶的 AI 能力建设
开发语言·人工智能·python·microsoft·职场和发展·数据挖掘·业界资讯
Data-Miner2 天前
AI处理数据的脚本复用与逻辑复用有什么区别?哪种方式更能沉淀工作成果
数据分析·excel
福兮说2 天前
在浏览器里写一个“够用就好“的 Excel 公式求值器
前端·javascript·excel·编译原理
ai_finder3 天前
买卖点预警系统是怎么工作的?从自然语言到盯盘任务的一次工程拆解
人工智能·科技·microsoft·金融
慧都小妮子3 天前
标签打印如何减少手工抄数?用Bartender 直连 Excel 批量打印
excel·bartender·条码打印·标签打印软件·数据驱动打印·工业打印机
SunnyDays10113 天前
Java 设置 Excel 数据验证:整数、日期、文本长度、下拉列表和时间
java·excel·数据验证·下拉列表
Metaphor6923 天前
使用 Python 设置 Excel 行列自适应 【代码示例】
python·excel
m0_466525294 天前
从火柴人看护画面看云从科技生态企业的隐私保护实践
大数据·人工智能·科技·microsoft