Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/ThisWorkbook.Close на событии Workbook_Open: Как обойти? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » ThisWorkbook.Close на событии Workbook_Open: Как обойти? (Макросы/Sub)
ThisWorkbook.Close на событии Workbook_Open: Как обойти?
StoTisteg Дата: Вторник, 12.06.2018, 13:01 | Сообщение № 1
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Когда-то давно, в другой галактике, сижу я и пишу код... Напланировал кучу всего, закрыл все операторы, написал в Workbook_Open первое условие проверки (которое в пустой книге, разумеется, не выполнялось) и ThisWorkbook.Close в Else, нажал Ctrl+S и с чуйством выполненного долга пошёл курить... Пока курил - здание взяло и моргнуло светом. Матерясь, запускаю Винду, открываю свой файлег... Ну вы поняли, и перехватить Ctrl+Pause нереально. Отключение макросов не помогает отчего-то, ЛибрОфис макросы (а их там куча в стандартных модулях) не только не выполняет (что хорошо), но и просто не видит (что уже не очень). Дела давно прошедших дней, резервирование версий я выучил задолго до ВБА, но всё же интересно - можно ли с этим бороться и как?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеКогда-то давно, в другой галактике, сижу я и пишу код... Напланировал кучу всего, закрыл все операторы, написал в Workbook_Open первое условие проверки (которое в пустой книге, разумеется, не выполнялось) и ThisWorkbook.Close в Else, нажал Ctrl+S и с чуйством выполненного долга пошёл курить... Пока курил - здание взяло и моргнуло светом. Матерясь, запускаю Винду, открываю свой файлег... Ну вы поняли, и перехватить Ctrl+Pause нереально. Отключение макросов не помогает отчего-то, ЛибрОфис макросы (а их там куча в стандартных модулях) не только не выполняет (что хорошо), но и просто не видит (что уже не очень). Дела давно прошедших дней, резервирование версий я выучил задолго до ВБА, но всё же интересно - можно ли с этим бороться и как?

Автор - StoTisteg
Дата добавления - 12.06.2018 в 13:01
Hugo Дата: Вторник, 12.06.2018, 13:36 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Открыть любой файл (ну чтоб открылось приложение), отключить события, открыть свой корявый файл. Хотя отключение макросов должно помогать, вероятно там сбой файла вообще.
Ещё вроде есть при открытии сочетание клавиш, при котором события не отрабатывают. Но я этого не знаю... :(


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Вторник, 12.06.2018, 13:38
 
Ответить
СообщениеОткрыть любой файл (ну чтоб открылось приложение), отключить события, открыть свой корявый файл. Хотя отключение макросов должно помогать, вероятно там сбой файла вообще.
Ещё вроде есть при открытии сочетание клавиш, при котором события не отрабатывают. Но я этого не знаю... :(

Автор - Hugo
Дата добавления - 12.06.2018 в 13:36
StoTisteg Дата: Вторник, 12.06.2018, 13:44 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
отключение макросов должно помогать
Я тоже так думал... Похоже, Workbook_Open отрабатывает до анализа настроек вообще. А открыть левый файл для создания экземпляра приложения - это мысль, завтра попробую.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
отключение макросов должно помогать
Я тоже так думал... Похоже, Workbook_Open отрабатывает до анализа настроек вообще. А открыть левый файл для создания экземпляра приложения - это мысль, завтра попробую.

Автор - StoTisteg
Дата добавления - 12.06.2018 в 13:44
krosav4ig Дата: Вторник, 12.06.2018, 14:10 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 989 ±
Замечаний: 0% ±

Excel 2007,2010,2013
Закрыть все экземпляры Excel, открыть файл с зажатым шифтом


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460
 
Ответить
СообщениеЗакрыть все экземпляры Excel, открыть файл с зажатым шифтом

Автор - krosav4ig
Дата добавления - 12.06.2018 в 14:10
SLAVICK Дата: Вторник, 12.06.2018, 14:30 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Можно открыть пустой файл - запустить макрос для отключения отработки событий:
[vba]
Код
Application.EnableEvents = False
[/vba]
открыть файл
потом не забыть включить обработку событий :D
ну или как уже написал krosav4ig, зажать шифт и открыть- это своего рода запуск в безопасном режиме


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеМожно открыть пустой файл - запустить макрос для отключения отработки событий:
[vba]
Код
Application.EnableEvents = False
[/vba]
открыть файл
потом не забыть включить обработку событий :D
ну или как уже написал krosav4ig, зажать шифт и открыть- это своего рода запуск в безопасном режиме

Автор - SLAVICK
Дата добавления - 12.06.2018 в 14:30
StoTisteg Дата: Вторник, 12.06.2018, 14:35 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, и для надёжности - выполнять пошагово, не делая End Sub hands Ибо EnableEvents ненадёжно, как ScreenUpdate.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеSLAVICK, и для надёжности - выполнять пошагово, не делая End Sub hands Ибо EnableEvents ненадёжно, как ScreenUpdate.

Автор - StoTisteg
Дата добавления - 12.06.2018 в 14:35
SLAVICK Дата: Вторник, 12.06.2018, 14:47 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
и для надёжности - выполнять пошагово,

не, для стабильности - запустить открытие внутри процедуры сразу.
у меня в надстройке есть горячие процедуры включения и отключения скорости (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
[/vba]


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
и для надёжности - выполнять пошагово,

не, для стабильности - запустить открытие внутри процедуры сразу.
у меня в надстройке есть горячие процедуры включения и отключения скорости (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
[/vba]

Автор - SLAVICK
Дата добавления - 12.06.2018 в 14:47
Hugo Дата: Вторник, 12.06.2018, 18:00 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3252
Репутация: 707 ±
Замечаний: 0% ±

2019
Ибо EnableEvents ненадёжно

- не замечал, как раз наоборот. И я про это и говорил, а вызывать проще из окна отладки.


excel@nxt.ru
webmoney: E265281470651 Z422237915069
 
Ответить
Сообщение
Ибо EnableEvents ненадёжно

- не замечал, как раз наоборот. И я про это и говорил, а вызывать проще из окна отладки.

Автор - Hugo
Дата добавления - 12.06.2018 в 18:00
Мир MS Excel » Вопросы и решения » Вопросы по VBA » ThisWorkbook.Close на событии Workbook_Open: Как обойти? (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!