Надстройка VSTO excel выгружается после обработки события нажатия кнопки

Я создал надстройку для excel, где есть лента и кнопка на ней. Я обработал событие нажатия кнопки с помощью следующего кода

 Private Sub test_button_Click(ByVal sender As System.Object, ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles test_button.Click

    Dim activeWorksheet As Excel.Worksheet = Globals.ThisAddIn.Application.ActiveSheet
    Dim str As String
    Dim activeWorkbook As Excel.Workbook = Globals.ThisAddIn.Application.ActiveWorkbook
    Dim sheet As Excel.Worksheet
    Dim sheet_name As String

    Globals.ThisAddIn.Application.Workbooks.Open("c:\\Test.xls")
    str = Globals.ThisAddIn.Application.ActiveWorkbook.FullName
    activeWorkbook.Save()
    Globals.ThisAddIn.Application.Workbooks.Close()

    'Call to python com object 
    Dim PythonUtils = CreateObject("PythonDemos.Utilities")
    Dim response = PythonUtils.SplitString("Hello from VB", str)
    MsgBox(response)
    Globals.ThisAddIn.Application.Workbooks.Open("c:\\Test.xls")

End Sub

Когда вызов возвращается, приложение открывает книгу, но затем, после ее открытия, оно продолжает отменять добавление и вызывается метод ThisAddIn_Shutdown. Может ли кто-нибудь помочь мне выяснить, где я ошибаюсь и как я могу остановить выгрузку надстройки Excel?


person crystal    schedule 23.07.2010    source источник


Ответы (1)


Я думаю, что ваша проблема в этой строке прямо здесь.

Globals.ThisAddIn.Application.Workbooks.Close()

В Excel Application.Workbooks.Close закроет ВСЕ книги. Это включает в себя вашу надстройку. Вам нужно указать, какую книгу вы закрываете. Например:

activeWorkbook.Close

or

Application.Workbooks("Test.xls").Close
person mischab1    schedule 12.01.2012