【发布时间】:2013-04-09 07:56:17
【问题描述】:
当用户单击 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
应用程序在大多数情况下都会崩溃。但并非总是如此......有什么想法可能是错的吗? (我已经测试并确认删除功能会导致崩溃,但它并不总是同一张)。
编辑:此功能不会删除工作簿中的最后一张工作表。还有20张。我也使用Application.Calculation = xlCalculationAutomatic,因为有很多公式,我不希望excel在所有连接的工作表被删除之前计算更改。
任何提示或答案表示赞赏:)
【问题讨论】:
-
在哪一行崩溃?
-
如果您暂时关闭该行会不会崩溃:
Application.DisplayAlerts = False -
@Olle 它在删除工作表的行上崩溃,但并非每次都崩溃。然而,它最常在最后一个删除命令时崩溃。
-
您正在使用什么 Office 和系统?您是否在使用
debug.print SheetNameToCopy删除工作表名称之前对其进行了调试?你试过把On Error GoTo... -
好的,我已经缩小了范围!当我从要删除的工作表内的按钮运行宏时发生崩溃。我想我必须在其他工作表上制作一个按钮来管理工作表......
标签: vba excel excel-2010