2016-06-01 1 views
2

Ich versuche Excel-Makros von einem Jenkins Windows-Dienst auf Windows 7 64-Bit-VM auszuführen. Ich habe eine Batch-Datei, die VBS-Dateien angibt. Dann werden in den VBS-Dateien die Excel-Makros aufgelistet. Die Batch-Dateien fein lokal, aber wenn ich es von Jenkins laufen lasse, erhalte ich folgende Fehlermeldung:Ausführen von Excel-Makros von Jenkins

Microsoft VBScript runtime error: ActiveX component can't create object: 'Excel.Application'

Der Fehler scheint auf jede Instanz der folgenden in den VBS-Dateien auftreten:

Set xlApp = CreateObject("Excel.Application") 

Ich suche nur herum, ich sehe, dass viele andere Leute Probleme mit der Version cscript hatten, die zum Ausführen der VBS-Dateien verwendet wurde. Auf 64-Bit-Computern muss die 32-Bit-Version cscript verwendet werden. Aber egal wie ich versuche, diese Version von cscript zu verwenden, scheint Jenkins es zu ignorieren und den gleichen Fehler anzuzeigen, der mich denken lässt, dass die cscript Version nicht die Ursache meines Fehlers ist.

Ich habe Makros in Excel aktiviert und überprüft auch die ActiveX-Einstellungen. Wie ich schon sagte, Doppelklick auf die Batch-Datei, alles funktioniert gut. Irgendetwas muss Jenkins tun, um das Problem zu lösen.

Irgendwelche Ideen?

+0

Installiert Ihr Office 32-Bit oder 64-Bit? –

+0

Ich bin mit dem ähnlichen Problem konfrontiert, lief ich cscript .vbs, aber habe den folgenden Fehler: verursacht: java.io.IOException: Kann das Programm "/ bin/sh" (im Verzeichnis "C: \ Jenkins \ Workspace \ generateParams "): CreateProcess error = 2, Das System kann die angegebene Datei nicht finden. Mein VBS-Skript öffnet eine Excel-Datei -> führt ein Makro -> schließt es. Die Excel-Datei und VBS-Skript befindet sich am selben Ort, aber unterscheidet sich von Jenkins Workspace.Ist das die Ursache des Problems? – salsinga

Antwort

0

Try

Set xlApp = GetObject("Excel.Application")

Bei genauerer Lektüre Ihrer Frage verwenden, scheint es, wie Sie Probleme mit ausführbaren Dateien haben können. Hmmm, kannst du eigentlich eine volle Kommandozeile geben, soo statt run/double click foo.vbs sowas wie script.exe foo.vba. Ich habe script.exe erfunden, aber Sie sollten den Punkt bekommen, warum nicht die ausführbare Datei angeben?

Ich habe selten von Jenkins gehört, kümmern sich um die Dokumentation Links, die Sie vielleicht für dieses Problem relevant denken. Es ist alles nützlich für zukünftige stackoverflower das gleiche Problem zu begegnen.