VBA代码大全005:如何用vba批量删除excel工作表?

用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
       

发表评论