Неправильная работа Auto_Close() ?

Программирование на Visual Basic for Applications
samsobi
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 09.06.2006 (Пт) 11:06

Неправильная работа Auto_Close() ?

Сообщение samsobi » 13.06.2006 (Вт) 21:20

Для сокрытия всех рабочих листов в одной важной книге Excel применяю следующий код:

Код: Выделить всё
'Установки при открытии книги
Sub Auto_Open()
If InputBox("Введите пароль", "Пароль доступа") = "12345" Then
    For sh = 1 To Sheets.Count - 1
        Worksheets(sh).Visible = True 'Если пароль верен - откроем все листы,кроме последнего
    Next sh
    Worksheets(Sheets.Count).Visible = xlVeryHidden 'Последний скроем
Else
    ActiveWorkbook.Close
End If
End Sub


Sub Auto_Close()
Worksheets(Sheets.Count).Visible = True 'откроем последний лист
For sh = 1 To Sheets.Count - 1
    Worksheets(sh).Visible = xlVeryHidden 'скроем все листы кроме последнего
Next sh
End Sub


По идее этот код должен работать только для ДАННОЙ рабочей книги.
Но иногда при открытых нескольких книгах, в том числе и данной, происходят чудеса. Закрываю совершенно постороннюю книгу, а потом обнаруживаю, что в ней скрылись все листы, кроме последнего. получается, что Auto_Close() отработал на ней, а не на той книге где записан!Помогите разобраться!

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 14.06.2006 (Ср) 3:34

Не надо просто Worksheets...
Надо уточнять, ГДЕ...
Например, ThisWorkbook.Worksheets...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

samsobi
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 09.06.2006 (Пт) 11:06

Сообщение samsobi » 15.06.2006 (Чт) 8:41

GSerg писал(а):Не надо просто Worksheets...
Надо уточнять, ГДЕ...
Например, ThisWorkbook.Worksheets...

Спасибо большое за совет!Всегда считал, что AutoOpen() и AutoClose() подразумевают ThisWorkbook, т.е. там где записан код. Поэтому я не уточнял ГДЕ. :shock: Теперь буду править тексты. :) Еще раз спасибо!


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 58

    TopList