Я хотел бы написать код, который перед закрытием Рабочей книги устанавливает все листы, кроме одной обложки, как очень скрытые.Я нажимаю «X», чтобы закрыть книгу, макрос запускается и все в порядке.Затем я получаю классическую форму сохранения Excel и, если нажимаю кнопку «Отмена», я получаю ошибку 91 - Переменная объекта или С переменной блока не установлено.
Может кто-нибудь объяснить мне, почему это происходит?Я использовал тот же код в прошлом, и у меня не было этой проблемы
Это интересно, потому что, если одновременно открыта другая книга Excel, она работает все отлично.
ВВкладка ThisWorkbook:
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