VSTO AddIn VB. net Контроль пользователя - PullRequest
0 голосов
/ 18 февраля 2020

Кодирование в VB. net

Настраиваемый пользовательский контроль + взаимодействие - надстройка с Excel

Я пытался повторить повторное редактирование коробка для нескольких форм.

(RefEdit: управление для выбора диапазонов, как в поле ввода)

Я бы использовал поле ввода, но это не практический грех, только в одной форме, которую я хотел бы использовать около 15.

I Успешно добавил пользовательский элемент управления в форму, и я попробовал поведение кнопок, но при попытке связать его, чтобы удивить удивительно! я получаю System.NullReferenceException: 'Ссылка на объект не является обязательной.' Ссылка на активную рабочую книгу.

Похоже, что Excel фактически не работает для пользовательского контроля.

    _xlapp = New Excel.Application
    Xlwb = _xlapp.ActiveWorkbook 'Fires the Exception
    XlAsh = Xlwb.ActiveSheet

Я пытался получить объект через Marshall

     Dim _xlapp=Excel.Application
    _xlapp=ctype(GetObject("Excel.Application"),Excel.Application)
     Xlwb = _xlapp.ActiveWorkbook
     XlAsh = Xlwb.ActiveSheet

И то же самое.

Я также пытался удалить ссылки (отчаянно пытался) в Проект Usercontrol, поэтому он может быть связан с активным экземпляром Addin.

Я не совсем уверен, как Interop ведет себя на уровне управления.

Есть идеи?

1 Ответ

1 голос
/ 18 февраля 2020

Вам не нужно создавать новый экземпляр приложения Excel, потому что у вас уже есть такой, где работает ваш плагин. Вместо этого вам нужно использовать
Dim xlApp As Excel.Application = Globals.ThisAddIn.Application
.
Это получит объект приложения, в который загружен ваш аддин, и вы сможете получить все его методы и свойства (например, xlApp.ActiveSheet или * 1006). *).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...