Когда-то давно, в другой галактике, сижу я и пишу код... Напланировал кучу всего, закрыл все операторы, написал в Workbook_Open первое условие проверки (которое в пустой книге, разумеется, не выполнялось) и ThisWorkbook.Close в Else, нажал Ctrl+S и с чуйством выполненного долга пошёл курить... Пока курил - здание взяло и моргнуло светом. Матерясь, запускаю Винду, открываю свой файлег... Ну вы поняли, и перехватить Ctrl+Pause нереально. Отключение макросов не помогает отчего-то, ЛибрОфис макросы (а их там куча в стандартных модулях) не только не выполняет (что хорошо), но и просто не видит (что уже не очень). Дела давно прошедших дней, резервирование версий я выучил задолго до ВБА, но всё же интересно - можно ли с этим бороться и как?
Когда-то давно, в другой галактике, сижу я и пишу код... Напланировал кучу всего, закрыл все операторы, написал в Workbook_Open первое условие проверки (которое в пустой книге, разумеется, не выполнялось) и ThisWorkbook.Close в Else, нажал Ctrl+S и с чуйством выполненного долга пошёл курить... Пока курил - здание взяло и моргнуло светом. Матерясь, запускаю Винду, открываю свой файлег... Ну вы поняли, и перехватить Ctrl+Pause нереально. Отключение макросов не помогает отчего-то, ЛибрОфис макросы (а их там куча в стандартных модулях) не только не выполняет (что хорошо), но и просто не видит (что уже не очень). Дела давно прошедших дней, резервирование версий я выучил задолго до ВБА, но всё же интересно - можно ли с этим бороться и как?StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Открыть любой файл (ну чтоб открылось приложение), отключить события, открыть свой корявый файл. Хотя отключение макросов должно помогать, вероятно там сбой файла вообще. Ещё вроде есть при открытии сочетание клавиш, при котором события не отрабатывают. Но я этого не знаю...
Открыть любой файл (ну чтоб открылось приложение), отключить события, открыть свой корявый файл. Хотя отключение макросов должно помогать, вероятно там сбой файла вообще. Ещё вроде есть при открытии сочетание клавиш, при котором события не отрабатывают. Но я этого не знаю... Hugo
Я тоже так думал... Похоже, Workbook_Open отрабатывает до анализа настроек вообще. А открыть левый файл для создания экземпляра приложения - это мысль, завтра попробую.
Я тоже так думал... Похоже, Workbook_Open отрабатывает до анализа настроек вообще. А открыть левый файл для создания экземпляра приложения - это мысль, завтра попробую.StoTisteg
Интуитивно понятный код - это когда интуитивно понятно, что это код.
Можно открыть пустой файл - запустить макрос для отключения отработки событий: [vba]
Код
Application.EnableEvents = False
[/vba] открыть файл потом не забыть включить обработку событий ну или как уже написал krosav4ig, зажать шифт и открыть- это своего рода запуск в безопасном режиме
Можно открыть пустой файл - запустить макрос для отключения отработки событий: [vba]
Код
Application.EnableEvents = False
[/vba] открыть файл потом не забыть включить обработку событий ну или как уже написал krosav4ig, зажать шифт и открыть- это своего рода запуск в безопасном режимеSLAVICK
не, для стабильности - запустить открытие внутри процедуры сразу. у меня в надстройке есть горячие процедуры включения и отключения скорости (SpeedOn_L и SpeedOff_L) - проблем нет - открывают спокойно. [vba]
Код
Sub d() SpeedOn_L Workbooks.Open "c:\Users\y.popov\Downloads\dddd.xlsm" SpeedOff_L End Sub
Sub SpeedOn_L() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False Application.DisplayAlerts = False End Sub Sub SpeedOff_L() Application.StatusBar = False Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True Application.DisplayStatusBar = True Application.DisplayAlerts = True End Sub
не, для стабильности - запустить открытие внутри процедуры сразу. у меня в надстройке есть горячие процедуры включения и отключения скорости (SpeedOn_L и SpeedOff_L) - проблем нет - открывают спокойно. [vba]
Код
Sub d() SpeedOn_L Workbooks.Open "c:\Users\y.popov\Downloads\dddd.xlsm" SpeedOff_L End Sub
Sub SpeedOn_L() Application.ScreenUpdating = False Application.Calculation = xlCalculationManual Application.EnableEvents = False Application.DisplayAlerts = False End Sub Sub SpeedOff_L() Application.StatusBar = False Application.ScreenUpdating = True Application.Calculation = xlCalculationAutomatic Application.EnableEvents = True Application.DisplayStatusBar = True Application.DisplayAlerts = True End Sub