下面的代码应该删除所有工作表,从6开始,当按下此按钮时可能会有很多。
它有效,但是我得到了'删除工作表类的方法失败'之后的错误
Private Sub UnloadButton_Click()
Do While Worksheets.Count > 5
Application.DisplayAlerts = False
Worksheets(6).Delete
Application.DisplayAlerts = True
Loop
End Sub
我见过的类似问题想要删除所有工作表或命名工作表,我无法真正适应它。
我怀疑这是因为当纸张6不再存在时它试图删除纸张6,但是一旦纸张数量为5,它肯定不会触发另一个循环?
答案 0 :(得分:1)
感谢David G
我有3'非常隐藏"需要首先删除的工作表,因为我的代码确实在尝试删除隐藏的工作表。
处理其他用户工作表时的重要一课,检查非常隐藏的工作表。
答案 1 :(得分:1)
虽然您的问题是VeryHidden
,但请注意您可以删除不带循环的工作表,如下所示
同样在您的原始代码中,建议您将Application.DisplayAlerts = False
移到您的循环之外。
If Worksheets.Count > 5 Then
Application.DisplayAlerts = False
Sheets(Application.Transpose(Application.Evaluate("=ROW(6:" & Sheets(Sheets.Count).Index & ")"))).Delete
Application.DisplayAlerts = True
End If