Страницы: 1
RSS
Автозапуск макроса при закрытии книги в Excel, Не работает макрос, в чем может быть проблема?
 
Добрый день,

Необходимо сделать макрос который при закрытии книги скрывет все листы кроме одного. Нашел такой:

Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Application.ScreenUpdating = False
    Dim wsSh As Worksheet
    Sheets("WARNING").Visible = -1
    For Each wsSh In ThisWorkbook.Sheets
        If wsSh.Name <> "WARNING" Then wsSh.Visible = 2
    Next wsSh
    ThisWorkbook.Save
End Sub


но он почему то не срабатывает, в чем может быть проблема?
Заранее спасибо.
 
_Illia_, а куда вы его вставляете? так как у меня макрос срабатывает - делает все листы скрытыми кроме листа с названием "WARNING"

https://www.excel-vba.ru/chto-umeet-excel/chto-takoe-modul-kakie-byvayut-moduli/
Изменено: Mershik - 30.09.2020 11:49:23
Не бойтесь совершенства. Вам его не достичь.
 
_Illia_, здравствуйте!
Цитата
_Illia_: Нашёл такой
я бы чуть по-другому сделал (хотя это совсем не обязательно)
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Dim wsSh As Worksheet

    For Each wsSh In ActiveWorkbook.WorkSheets
        wsSh.Visible = 2
    Next wsSh

WorkSheets("WARNING").Visible = -1
Application.ScreenUpdating = True
ActiveWorkbook.Save
End Sub
вставляйте его в модуль книги
Изменено: Jack Famous - 30.09.2020 11:53:11
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Спасибо за помощь!!!!
 
Цитата
Jack Famous написал:
я бы чуть по-другому сделал (хотя это совсем не обязательно)
ай-яй-яй....
И сделал неправильно. Не просто так в моем коде сначала делается видимым целевой лист, а уже после скрываются по условию все кроме него. Выполни свой код и получишь ошибку, т.к. ты сначала пытаешься скрыть ВСЕ листы, а после того как срыл отобразить хоть один. В этом случае Excel еще на стадии цикла скрытия листов выдаст ошибку, что должен оставаться видимым хотя бы один лист.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков: должен оставаться видимым хотя бы один лист
блин точно - забыл совсем про это условие  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх