Страницы: 1
RSS
Теряется ссылка на объект Application после ошибки
 
Добрый день, помогите разобраться. Разрабатываю сейчас надстройку для excel и столкнулся с проблемой: в модуле "ЭтаКнига" в файле надстройки .xlam содержится следующий код:
Код
Public WithEvents App As Application

Public Sub Workbook_Open()
    Set App = Application
End Sub

Public Sub App_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

If Target.Row = 1 Then
'при выборе первой строки будет вызвана ошибка намеренно для демонстрации
    MsgBox ("Строка " + Target.Row + " Столбец " + Target.Column)
Else
    MsgBox ("Строка " & Target.Row & " Столбец " & Target.Column)
    End If
End Sub
При запуске excel создаётся объект App (как бы ссылка на объект запущенного приложения Excel) и по началу все работает, пока не дойдёт дело до ошибки и дебага.При остановке дебага, на сколько я понимаю объект App выгружается из памяти, и весь функционал перестает работать до следующего перезапуска excel. Так же помогает восстановить объект выключение/включение надстройки в меню "Надстройки" панели "Разработчик".

Как бы сделать так, чтобы этот объект восстановился без перезапуска?
 
Цитата
Проблема с работой надстройки
Нет, первая Ваша проблема - правила форума Вы не прочитали или пробежались по диагонали.
Предложите название темы. Модераторы заменят.
 
Цитата
Aleksew написал:
чтобы этот объект восстановился без перезапуска?
1. Корректно обрабатывать ошибки
2. Вынести создание ссылка на App в отдельный модуль класса и при потере его восстанавливать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Спасибо получилось.
Код для обращения к макросу находящийся в модуле настройки "ЭтаКнига". Этот код нужно писать в стандартном модуле
Код
Sub AppCreated()

Application.Run ("ЭтаКнига.Workbook_Open")

End Sub
Код для обращения к макросу находящийся в модуле другой настройки "ЭтаКнига"
Код
Sub AppCreated()

Application.Run ("Имя_файла_надстройки.xlam!ЭтаКнига.Workbook_Open")

End Sub
Страницы: 1
Наверх