推荐孙老师的vba课程
《跟着孙兴华学习Excel VBA 第一季》
题目:删除所有工作表
老师解法
Sub DelShet() '删除所有工作表
Dim sht As Worksheet
Application.ScreenUpdating = False '关屏幕刷新
Application.DisplayAlerts = False '关警告信息
On Error Resume Next
For Each sht In Worksheets
sht.Delete '遍历工作表删除
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
这种做法在删除最后一张表时会触发错误,因为一般每个工作簿里面最少要有一张表。通过
On Error Resume Next
忽略错误。
个人解法
Sub DelShet() '删除所有工作表
Dim i As Integer
Application.ScreenUpdating = False '关屏幕刷新
Application.DisplayAlerts = False '关警告信息
For i = Sheets.Count To 2 Step -1
Debug.Print Sheets.Count
Sheets(i).Delete '遍历工作表删除
Next
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
个人习惯保留第一张工作表,所以该在代码中设置第一张保留