一次删除多个工作表

我有多个工作表,每个表上的数据。 我想从第4张表中删除表单以无限制。 我已经尝试了下面的代码:

Sub Delete_Sheets() Application.ScreenUpdating = False Dim j As Integer j = Worksheets.Count For k = 4 To j With Sheets(k).Delete End With Next k Application.ScreenUpdating = True End Sub 

问题是,每次代码问我的权限删除工作表,最后看到删除只有几张。 有人帮忙

closures显示的警报。 从最后一张纸向后删除。

 Sub Delete_Sheets() Dim j as long Dim k As Long Application.ScreenUpdating = False Application.DisplayAlerts = False j = Worksheets.Count For k = j To 4 Step -1 Sheets(k).Delete Next k Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 

closures确认并循环删除工作表命令,直到剩下三个工作表。

 Option Explicit Sub qwea() Application.DisplayAlerts = False Do While Worksheets.Count > 3 Worksheets(Worksheets.Count).Delete Loop Application.DisplayAlerts = True End Sub 

如果您已经将For … Next的增量反转为For k = j To 4 step - 1那么您的代码就可以正常工作。 删除时,您正在“跨越”工作表。

如果你删除索引4以上的表总是那么也许这会为你工作。

 Dim idx, s As String Application.DisplayAlerts = False '/* of course you need to turn this off */ If Sheets.Count > 3 Then s = "=TRANSPOSE(ROW(A4:A" & Sheets.Count & "))" idx = Evaluate(s) Sheets(idx).Delete End If Application.DisplayAlerts = True 

这将总是删除超过4张。
但请确保您的工作表始终正确编入索引,否则请使用循环。