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

Вход

Регистрация

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

 

= Мир MS Excel/При ошибке кода в любом месте - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При ошибке кода в любом месте (Макросы/Sub)
При ошибке кода в любом месте
urlchik Дата: Четверг, 09.04.2020, 11:27 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте!
Подскажите, пожалуйста!
Можно ли сделать так, чтоб при возникновении ошибки в любом из 5 модулей и нажатии на Debug происходило все стандартно - мы идем в код на строку с ошибкой!
А при нажатии End - было не завершение кода, а полный выход из Экселя, т.е. application.quit ?

Спасибо!


Век живи - век учись!
 
Ответить
СообщениеЗдравствуйте!
Подскажите, пожалуйста!
Можно ли сделать так, чтоб при возникновении ошибки в любом из 5 модулей и нажатии на Debug происходило все стандартно - мы идем в код на строку с ошибкой!
А при нажатии End - было не завершение кода, а полный выход из Экселя, т.е. application.quit ?

Спасибо!

Автор - urlchik
Дата добавления - 09.04.2020 в 11:27
nilem Дата: Четверг, 09.04.2020, 14:19 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
urlchik, привет
может, как-то вот так:
[vba]
Код
Sub test()
Dim i&

On Error Resume Next: Err.Clear
i = 18 / 0

If Err Then
    If MsgBox("Завершить работу?", 36) = vbNo Then
   'можно добавить
    'If MsgBox(Err.Description & vbCrLf & "Завершить работу?", 36) = vbNo Then
        Stop
    Else
        ThisWorkbook.Save
        Application.Quit
    End If
End If
End Sub
[/vba]


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Четверг, 09.04.2020, 14:27
 
Ответить
Сообщениеurlchik, привет
может, как-то вот так:
[vba]
Код
Sub test()
Dim i&

On Error Resume Next: Err.Clear
i = 18 / 0

If Err Then
    If MsgBox("Завершить работу?", 36) = vbNo Then
   'можно добавить
    'If MsgBox(Err.Description & vbCrLf & "Завершить работу?", 36) = vbNo Then
        Stop
    Else
        ThisWorkbook.Save
        Application.Quit
    End If
End If
End Sub
[/vba]

Автор - nilem
Дата добавления - 09.04.2020 в 14:19
urlchik Дата: Понедельник, 13.04.2020, 08:32 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
может, как-то вот так:

Спасибо, но не то!
Я имел ввиду пе перехват событий ошибки, а изменить действие при нажати кнопки в стандартном окне ошибки! (даже не знаю как пояснить)

On error надо размещать в каждой процедуре перед предположительным возникновением ошибки. А я спрашиваю про универсальную как-бы функцию перехватчика или изменение самого перехватчика. Ведь код стандартного перехватчика мы нигде не прописываем, но на ошибки он реагирует - вот там бы и изменить действие кнопки End!

Возможно ли это сделать?


Век живи - век учись!
 
Ответить
Сообщение
может, как-то вот так:

Спасибо, но не то!
Я имел ввиду пе перехват событий ошибки, а изменить действие при нажати кнопки в стандартном окне ошибки! (даже не знаю как пояснить)

On error надо размещать в каждой процедуре перед предположительным возникновением ошибки. А я спрашиваю про универсальную как-бы функцию перехватчика или изменение самого перехватчика. Ведь код стандартного перехватчика мы нигде не прописываем, но на ошибки он реагирует - вот там бы и изменить действие кнопки End!

Возможно ли это сделать?

Автор - urlchik
Дата добавления - 13.04.2020 в 08:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » При ошибке кода в любом месте (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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