Workbook_BeforeClose-标准保存表单弹出,但单击“取消”时出现错误91

时间:2019-07-11 19:26:11

标签: excel vba

我想编写一个代码,在关闭工作簿之前,将除一个封面之外的所有工作表都设置为非常隐藏。 我单击“ X”关闭工作簿,宏被触发,一切正常。 然后,我收到经典的Excel保存表格,如果单击“取消”,则会收到错误91-对象变量或未设置带块变量。

有人可以解释一下为什么会这样吗?我过去使用相同的代码,但是没有这个问题

这很有趣,因为如果同时打开另一个excel工作簿,那么它可以正常工作。

在“此工作簿”标签中:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Application.EnableEvents = True

    Call my_macro 'defined in a separate module


    Application.EnableEvents = False

End Sub

为清楚起见,模块1中的代码如下:

Public Sub my_macro()

Application.ScreenUpdating = False

On Error GoTo skip

Dim ws As Worksheet

Sheet8.Visible = True


For Each ws In Worksheets

    If ws.Name = "Cover" Then

    Else

        ws.Visible = xlSheetVeryHidden

    End If

Next ws

Sheet8.Select

Range("A1").Select

Application.ScreenUpdating = True

ActiveSheet.EnableSelection = xlNoRestrictions
Application.EnableEvents = True

skip:
Application.EnableEvents = True

End Sub

0 个答案:

没有答案