【问题标题】:VSTO excel addin gets unloaded after button click event is handled处理按钮单击事件后,VSTO excel 插件被卸载
【发布时间】:2011-03-20 00:15:18
【问题描述】:

我为 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 插件?

【问题讨论】:

    标签: vba excel visual-studio-2008 com vsto


    【解决方案1】:

    我认为你的问题是这里的这条线。

    Globals.ThisAddIn.Application.Workbooks.Close()
    

    在 Excel 中,Application.Workbooks.Close 将关闭 所有 个工作簿。这包括您的插件。您需要指定要关闭的工作簿。例如:

    activeWorkbook.Close
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-24
      • 2011-10-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多