【发布时间】:2019-04-01 06:06:24
【问题描述】:
我想删除工作簿中的所有工作表,给定年份的月末工作表除外,例如工作表名称所有工作表名称都以这种格式输入 dd.mm.yy 我尝试了其他代码,例如 case 而不是 If 但所有代码似乎都停在 ws.delete
Sub Delete_Sheets
Yr = InputBox("Use YY format only.", "Which year to keep?", 18)
Dim ws As Worksheet
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name <> "31.01.Yr" Or ws.Name <> "28.02.Yr" Or ws.Name <> "31.03.Yr" Or ws.Name <> "30.04.Yr" Or ws.Name <> "31.05.Yr" Or ws.Name <> "30.06.Yr" Or ws.Name <> "31.07.Yr" Or ws.Name <> "31.08.Yr" Or ws.Name <> "30.09.Yr" Or ws.Name <> "31.10.Yr" Or ws.Name <> "30.11.Yr" Or ws.Name <> "31.12.Yr" Then
ws.Delete
End If
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
【问题讨论】:
-
当您尝试删除工作簿上的最后一张工作表时,您的代码将停止。您当前的代码会删除每张纸。您必须使用
And而不是Or