用vba批量删除excel工作表是一个非常基础的技能。
在vba中直接使用Worksheet 对象的 Delete 方法就可以删除工作表。
但是这里有个要注意的是,如果直接不加任何修饰的删除,一般会弹出提示对话框,这样会非常干扰程序的运行,需要人为去选择对话框才能让程序继续运行下去。
这时候,只需要设置Application.DisplayAlerts的属性值为True,即可避免弹出对话框,然后在程序结束之前,恢复该属性值为False,从而避免在正常使用excel时也出现无法弹出对话框,这是在vba程序的编写中最经常用到的一个技巧。
代码如下:
Sub 批量删除工作表() '作者QQ:1722187970,微信:xycgenius,公众号:水星Excel '关闭屏幕更新,加快代码运行速度 Excel.Application.ScreenUpdating = False '公式计算方式改为手动,加快代码运行速度 Excel.Application.Calculation = xlCalculationManual '关闭弹窗提示,使得代码流畅运行 Excel.Application.DisplayAlerts = False Dim oWK As Worksheet Dim oWB As Workbook Set oWB = Excel.ThisWorkbook '循环所有Excel工作表 For Each oWK In oWB.Worksheets '条件判断保留的Excel工作表 If oWK.Name Like "**" Then Else '不满足条件的就删除 oWK.Delete End If Next '恢复屏幕更新 Excel.Application.ScreenUpdating = True '公式自动重算 Excel.Application.Calculation = xlCalculationAutomatic '恢复弹窗提示 Excel.Application.DisplayAlerts = True End Sub
发表评论