Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba VSTO excel加载项在处理按钮单击事件后卸载_Vba_Excel_Visual Studio 2008_Com_Vsto - Fatal编程技术网

Vba VSTO excel加载项在处理按钮单击事件后卸载

Vba VSTO excel加载项在处理按钮单击事件后卸载,vba,excel,visual-studio-2008,com,vsto,Vba,Excel,Visual Studio 2008,Com,Vsto,我已经创建了一个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 = Glob

我已经创建了一个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加载项吗?

我想你的问题就在这一行

Globals.ThisAddIn.Application.Workbooks.Close()
在Excel中,Application.Workbooks.Close将关闭所有工作簿。这包括您的加载项。您需要指定要关闭的工作簿。例如:

activeWorkbook.Close

Application.Workbooks("Test.xls").Close