Vba VSTO excel加载项在处理按钮单击事件后卸载
我已经创建了一个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
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