退出时删除工作表(如果存在)VBA

时间:2018-05-11 21:00:23

标签: excel vba excel-vba

我试图在退出时从此Excel文件中删除工作表(如果存在)。我的代码告诉它自动删除工作表并在弹出框中说“是,删除”,但由于某种原因它没有运行。

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'
' This procedure will delete sheet upon exit and select "Yes, Delete" in the 
'  pop-up box
'    
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
    If ws.Name = "Temp" Then
        Application.DisplayAlerts = False
        Worksheets("Temp").Delete
        Application.DisplayAlerts = True
    End If
Next
End Sub

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情......

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim ws As Worksheet
Application.DisplayAlerts = False
On Error Resume Next
Set ws = Sheets("Temp")
If Not ws Is Nothing Then
    ws.Delete
    ThisWorkbook.Save
End If
Application.DisplayAlerts = True
End Sub

答案 1 :(得分:1)

我认为你应该编码

Private Sub Workbook_BeforeClose(Cancel As Boolean)    
    Application.DisplayAlerts = False
    On Error Resume Next ' this will prevent subsequent line from stoping code should there be no "Temp" sheet 
    Sheets("Temp").Delete
    Application.DisplayAlerts = True
    Me.Save ' be sure you save the workbook before closing it
End Sub