На работе стоит ХР, а дома 7. На рабочем работает нормально. Решил по свободе посидеть над документом дома, а семёрка на любой макрос ругается. Пример:
Код
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Sheets("СЧЕТ").Visible = True
Sheets("ГРАФИК").Visible = False
With UserForm1
.Show 0
.OptionButton2 = True
End With
Application.ScreenUpdating = True
End Sub
Run-time error '57121' Application-defined or object-deifined error может происходить потому, что процедура происходит до того, как Excel подкружает листы. Поэтому макрос и загибается на Sheets("СЧЕТ").Visible = True, потому что он его не видит. Как вариант можно попробовать поставить выполнение процедуры с задержкой ну например в 5 секунд Application.Wait Time:=Now + TimeValue("0:00:05") или использовать процедуру Sub auto_open() в стандартном модуле.
В том то и дело, что на любой. Допустим: вот беру я и удаляю Private Sub Workbook_Open(), и открываю Форму при нажатии клавиши (макросом изначально записаным в стандартном модуле):
Код
Sub Скругленныйпрямоугольник1_Щелкнуть()
If ActiveSheet.Name = "СЧЕТ" Then
UserForm1.Show 0
UserForm1.OptionButton2 = True
ElseIf ActiveSheet.Name = "ГРАФИК" Then
UserForm1.Show 0
UserForm1.OptionButton1 = True
End If
End Sub
Но если создаю новый, точно такой же, документ и в нем делаю всё один в один. То всё работает замечательно. Может не морочить себе голову и просто дождаться рабочих дней и уж на работе заниматься?!
Тоже так думал. Решил проверить. Оказалось, что любой файл с макросами, созданый на рабочем компьютере, на домашнем не работает и пишет одну и ту же ошибку.
Господа! Хочу сказать огромное спасибо всем откликнувшимся. Благодарю Вас за советы. И прошу меня простить, что проморочил Вам голову. Не хочу отвлекать Вас и дальше. Подумал: если не работает на домашнем, ну и пускай... Главное что на работе работает. А делу-время, потехе-час. Еще раз всем спасибо!