Ich rufe python aus Excel mit xlwings auf. Ich finde, dass Excel beim Ausführen meines Makros schließt und wieder öffnet, um den Code auszuführen. Es funktioniert richtig, aber es verlangsamt die Dinge. Wenn die Excel-Datei nicht gespeichert ist, wird in einem Dialogfeld außerdem erwähnt, dass die Datei bereits geöffnet ist und dass ich nicht gespeicherte Änderungen verlieren werde.
Gibt es eine Möglichkeit, Python aufzurufen, ohne die Excel-Datei erneut zu öffnen?
Dies ist mein Python-Code (in loaddf.py):
%Vor%Und der VBA-Code in meiner Excel-Datei:
%Vor%Danke für die Hilfe.
Es scheint, dass Excel eine Excel-Arbeitsmappe unter Umständen nicht korrekt in RunningObjectTable
registriert, eine Vorbedingung, damit sie über COM gefunden werden kann. Bisher habe ich dieses Verhalten nur bei Arbeitsmappen bemerkt, die aus dem Internet heruntergeladen wurden, da sie zuerst im Modus Protected View
geöffnet werden (abhängig von den Einstellungen). Aufgrund der Rückmeldungen scheint dies jedoch auch unter anderen Umständen möglich zu sein, möglicherweise verursacht durch einige Add-Ins oder Sicherheitseinstellungen.
Ich habe ein Update für dieses Feature implementiert, das in v0.3.1
vorhanden sein wird, aber Sie können es jetzt direkt von GitHub . Lass es mich wissen, wenn du Hilfe brauchst.
Update (16-Jan-2015): xlwings v0.3.1 einschließlich dieses Updates wurde gerade veröffentlicht.
Update2 (13-Sept-2015): xlwings v0.4.0 sollte diesen Fehler endgültig beheben.