我正在尝试创建一个删除事件工作表而不显示提示的宏。这就是下面的代码所做的......这在最后一张纸之前效果很好。无论如何我都会得到提示。我不想删除最后一张纸,同时我不想出现错误“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
并将其设置为工作簿中的最后一个工作表; Worksheets
在 Workbook.Worksheets
收藏,从最后一张开始; wksToDelete
与 wksToStay
同名; 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/