分享

Application.DisplayAlerts不显示警告对话框

 ForSheet 2020-12-29

如果删除一张表,可以右击表标签,进行删除。

使用VBA的代码如下,意思是指删除第2张表。

        Sheets(2).delete

使用VBA可以循环处理,批量删除很多张表。

注意,以下代码是错误的:

Private Sub CommandButton1_Click()Dim i As Integer For i = 2 To 10 Sheets(i).Delete NextEnd Sub

表面上看,好像没有问题,删除到第2张表到第10张表。

执行以下代码就会出现以下问题。

原因是,假设你一共是10张表,删除一张,就少了一张,后面就只有9张表,8张表,7张表,但是代码的意思还是,第3张,第4张……第8张,第9张,第10张,所以报错。

可以使用以下代码,声明i为工作表对象,遍历集合中的每个表,只要表的名字不是"Sheet1",删除,这样就可以保留这一张表,其他的全删除。

Private Sub CommandButton1_Click()Dim i As WorksheetFor Each i In Worksheets If i.Name <> "Sheet1" Then i.Delete End IfNextEnd Sub

删除一张表,不同版本显示不一样,有的会提醒以下信息对话框。

如果批量删除100个表,每删除一个表就有这么一个对话框,就不好玩了,你需要点击100次按钮,同意删除。

使用以下代码暂时屏蔽警告对话框。

Private Sub CommandButton1_Click()Application.DisplayAlerts = FalseDim i As WorksheetFor Each i In Worksheets If i.Name <> "Sheet1" Then i.Delete End IfNextApplication.DisplayAlerts = TrueEnd Sub

做完程序之后,再显示警告对话框,否则以后手动右击删除表,也不会有提示。

Application.DisplayAlerts = False 暂时关闭

Application.DisplayAlerts = True 还原成原来的设置。

子曰用之则行,不用则藏。

意思是说,如果你用我的这些建议,就马上行动,知行合一,如果你不用,就赶紧收藏,以绝后患。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多