gpt4 book ai didi

excel - VBA删除事件工作表

转载 作者:行者123 更新时间:2023-12-04 21:07:53 30 4
gpt4 key购买 nike

我正在尝试创建一个删除事件工作表而不显示提示的宏。这就是下面的代码所做的......这在最后一张纸之前效果很好。无论如何我都会得到提示。我不想删除最后一张纸,同时我不想出现错误“1004”消息。有没有办法将上面的代码更改为不删除我的最后一张工作表并且不同时显示错误消息?

Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True

最佳答案

如果想法是删除ActiveSheet只有它,这是可行的,直到工作簿中只有一张纸:

Sub DeleteActiveSheet()

If ThisWorkbook.Worksheets.Count = 1 Then
Exit Sub
Else
Application.DisplayAlerts = False
ThisWorkbook.ActiveSheet.Delete
Application.DisplayAlerts = True
End If

End Sub

如果想法是删除所有工作表,但最后一个,然后按照以下顺序:
  • 分配工作表变量 wksToStay来自类型Worksheet并将其设置为工作簿中的最后一个工作表;
  • 遍历所有 WorksheetsWorkbook.Worksheets收藏,从最后一张开始;
  • 总是执行检查,是否要删除的工作表wksToDeletewksToStay 同名;
  • 删除,如果名称不同;
  • 它将删除所有工作表,包括 hidden and the very hidden ones ;

  • Sub DeleteAllButLast()

    Dim wksToStay As Worksheet
    Dim wksToDelete As Worksheet
    Dim i As Long

    Set wksToStay = ThisWorkbook.Worksheets(Worksheets.Count)

    For i = Worksheets.Count To 1 Step -1
    Set wksToDelete = ThisWorkbook.Worksheets(i)
    If wksToDelete.Name <> wksToStay.Name Then
    Application.DisplayAlerts = False
    wksToDelete.Delete
    Application.DisplayAlerts = True
    End If
    Next

    End Sub

    关于excel - VBA删除事件工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60269043/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com