2010-07-23 4 views
1

J'ai créé un addin pour Excel, où il y a un ruban et un bouton dessus. J'ai traité l'événement de bouton, cliquez avec le code suivantVSTO excel addin est déchargé après qu'un événement de clic sur un bouton est traité

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 

Lorsque le retour d'appel, l'application ouvrez le classeur, mais après l'avoir ouvert, il procède futher à unlode l'ajout et la méthode ThisAddIn_Shutdown est appelée. Quelqu'un peut-il m'aider s'il vous plaît savoir où je vais mal et comment puis-je arrêter le déchargement de l'Excel Addin?

Répondre

0

Je pense que votre problème est cette ligne ici.

Globals.ThisAddIn.Application.Workbooks.Close() 

Dans Excel, Application.Workbooks.Close fermera TOUS classeurs. Cela inclut votre addin. Vous devez spécifier le classeur que vous fermez. Par exemple:

activeWorkbook.Close 

ou

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