使用VBA删除工作表会导致Excel崩溃

Ole*_*røm 1 excel vba excel-vba excel-2010

当用户单击Excel中的图像(按钮)时,我试图删除工作表.但是这会使excel崩溃并重新启动,忘记任何未保存的进度.

这是我的子:

Sub DeletePlan()

Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
Dim SheetNamesToCopy As String

SheetNamesToCopy = ActiveSheet.Name



' Check what addon sheets exists for the media, then add existing ones to string
If CheckSheet("periodeplan", True) = True Then
    ThisWorkbook.SheetS(SheetNamesToCopy & " - periodeplan").Delete
End If

If CheckSheet("ukesplan", True) = True Then
    ThisWorkbook.SheetS(SheetNamesToCopy & " - ukesplan").Delete
End If

If CheckSheet("Input", True) = True Then
    ThisWorkbook.SheetS(SheetNamesToCopy & " - Input").Delete
End If

SheetS("Totalplan").Select
ThisWorkbook.SheetS(SheetNamesToCopy).Delete

Application.DisplayAlerts = True
Application.Calculation = xlCalculationAutomatic

End Sub
Run Code Online (Sandbox Code Playgroud)

应用程序大部分时间都崩溃了.但并不总是......任何想法可能是错的?(我已经测试并确认删除功能导致崩溃,但它并不总是相同的工作表).

编辑:此功能不会删除工作簿中的最后一个工作表.还有20张床单.我也使用Application.Calculation = xlCalculationAutomatic,因为有分配公式,我不希望excel计算更改所有连接表被删除之前.

任何提示或答案都赞赏:)

Ole*_*røm 6

当启动宏的按钮位于其中一个要删除的工作表上时,会发生错误.

所以答案是:不要创建一个删除它所在的工作表的按钮(或链接到宏的图像).

如果有人可以为此错误添加此答案,请执行此操作;)

  • 好点......不要删除你的父母;) (2认同)