VSTO Excel надстройка выгружается после обработки события нажатия кнопки - PullRequest
1 голос
/ 23 июля 2010

Я создал плагин для 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?

1 Ответ

0 голосов
/ 13 января 2012

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

Globals.ThisAddIn.Application.Workbooks.Close()

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

activeWorkbook.Close

или

Application.Workbooks("Test.xls").Close
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...