我有這段代碼,但是當我運行它時,excel 總是崩潰。我沒有收到錯誤代碼或任何東西。Excel 剛剛關閉。
Sub DeleteSheets()
Dim xWs As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In Application.ActiveWorkbook.Worksheets
If xWs.Name <> "Overview" And xWs.Name <> "Models-Features" And xWs.Name <> "Formulas" And xWs.Name <> "Original Features" Then
xWs.Delete
End If
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
uj5u.com熱心網友回復:
看來您的代碼正在洗掉所有導致錯誤的作業表,即使其中一個標記為“概述”。我使用 清理了它Select,它現在不會洗掉適當的命名表:
Sub DeleteSheets()
Dim xWs As Worksheet
Application.EnableEvents = False
Application.Calculation = xlManual
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In Application.ActiveWorkbook.Worksheets
If Sheets.Count = 1 Then Exit For
Select Case xWs.Name
Case "Overview"
Case "Models-Features"
Case "Formulas"
Case "Original Features"
Case Else
xWs.Delete
End Select
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlAutomatic
End Sub
Edit1:添加了檢查以Sheets.Count防止因洗掉作業簿中的最后一張作業表而導致的錯誤。
Edit2:添加了額外的application約束
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/476952.html
