2016-07-30 10 views
2

Ich habe ein Excel-Add-In in VBA programmiert, das mit Python Aufrufe an einen MySQL-Server ausführt. Mein Problem ist folgendes:Excel-Add-In ohne Zustimmung entfernt

hin und wieder, ohne ersichtlichen Grund, wird das Add-In aus der Entwickler-Registerkarte entfernt, und ich kann nicht mehr auf seinen Code zugreifen. Um dieses Problem zu umgehen, deinstallieren Sie das Add-In und installieren es neu (File-> OPTIONS-> Add-ins-> Go ..). Da es ziemlich langweilig ist, suche ich Hilfe.

Opening a existing file with formulas from my add-in, I first get the following warning

Leading to this when trying to edit the links

Leider ist die Bearbeitung nicht und gibt eine Fehlermeldung

Dann werden die Formeln gebrochen bleiben und nicht das Add-In nennen, wie es gerade nicht gefunden wurde, und ich muss es entfernen und neu importieren, damit die Arbeitsmappe funktioniert.

Hat irgendein VBA-Entwickler das Problem schon einmal ausgeführt?

+0

Nope. Sie können jedoch eine Add-In-Selbstinstallation wie eine EXE-Datei vornehmen. Nicht dass es dir wirklich helfen würde. – Andreas

Antwort

3

Hier ist, wie ich es tun würde, wenn ich das gleiche Problem konfrontiert bin wie Sie

  1. Schließen Sie alle geöffneten Arbeitsmappen in Excel
  2. ein neues Unterprogramm Auto_Open in einem leeren Excel namens erstellen
  3. Datei hinzufügen der Code, der am Ende dieses Beitrags erwähnt wird
  4. Speichern Sie es in C:\Users\<your username>\AppData\Roaming\Microsoft\Excel\XLSTART, nachdem Sie den Code eingegeben, getestet und verifiziert haben. Der Pfad kann je nach verwendetem Betriebssystem variieren.

Und Sie sind fertig. Wenn Excel das nächste Mal gestartet wird, prüft es, ob das Add-In installiert ist und wenn nicht, installiert es es.

Ungeprüfte

Sub Auto_Open() 
    If IsAddinLoaded("Your Add-In Name") = False Then 
     With Application 
      .AddIns.Add "Filepath to your Add-In", False 
      .AddIns("Your Add-In Name").Installed = True 
     End With 
    End If 
End Sub 

Function IsAddinLoaded(AddinName As String) As Boolean 
    On Error Resume Next 
    IsAddinLoaded = Len(Workbooks(AddIns(AddinName).Name).Name) > 0 
End Function 
+0

Danke! Ist es die Tatsache, dass die Datei im XLSTART-Ordner liegt, der automatisch jedes Mal ausgeführt wird, wenn ich Excel starte? Soll ich es auch als Add-In oder als einfache Makro-fähige Arbeitsmappe speichern? –