2017-03-10 3 views
3

Ausführen eines Auftrags von AutoSys und ich erhalte einen Fehler. VBS führt ein Excel-Makro aus. VBS Code:Fehler beim Ausführen von Excel-Makro VBScript

Option Explicit 

Dim xlApp, xlBook 
Set xlApp = CreateObject("Excel.Application") 
On Error Resume Next 
set xlBook = xlApp.Workbooks.Open("Z:\Confidential Restricted\Weekly_HR_Employees_Macro.xlsm",0, False) 
xlApp.Run "Weekly_HR_Employees_Macro.Weekly_HR_Employees_Macro" 
xlBook.Close True 
xlApp.Quit 

set xlBook = Nothing 
Set xlApp = Nothing 

Fehler:

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

Wie in @ ManishChristians Antwort angegeben, ist die CreateObject-Syntax in Ihrem Code falsch. Dies führt zu dem Fehler. Und selbst wenn Sie eine Bounty von +1000000000 anbieten, ist keine andere Antwort möglich, bis Sie die Syntax korrigieren und uns den Fehler mitteilen, der mit der richtigen Syntax ausgelöst wird. –

+0

Wie in meiner Antwort angegeben, habe ich die korrekte Syntax verwendet, aber bei dem Versuch, den Fehler zu beheben, habe ich die Änderung vorgenommen. Ich habe den Code in meiner Frage zu dem, was ich jetzt habe, bearbeitet und erhalte immer noch einen Fehler. Bitte beachte die bearbeitete Frage. –

+0

Siehe http://stackoverflow.com/questions/41405937/active-x-error-with-excel-2016-and-late-binding#comment70015740_41405937. Versuchen Sie 'CreateObject (" Excel.Application.16 ")' oder 'CreateObject (" Excel.Application.15 ")' oder '.14' oder' .12' abhängig von Ihrer Excel-Version. Siehe http://www.rondebruin.nl/win/s9/win012.htm. –

Antwort

0

Obwohl das Skript auf meinem Computer ausgeführt wird, wird es nicht auf dem Computer ausgeführt, den der AutoSys-Auftrag verwendet hat. Ich fand schließlich, dass auf dem Computer, der von dem Autosys-Auftrag verwandt wurde, Microsoft Office nicht installiert ist.

2

Du GetObject Syntax mit CreateObject Methode. Sie müssen verwenden:

Set xlApp = CreateObject("Excel.Application") 

Überprüfen Sie this für weitere Details.

+0

Danke, ich hatte ursprünglich Set xlApp = CreateObject ("Excel.Application") verwendet, und das ist, als ich den Fehler bekam. Das funktioniert auch nicht für mich –

+0

Überprüfen Sie zuerst die Antwort von dem Link, den ich geteilt habe. Wenn Ihre Arbeitsmappe bereits geöffnet ist, verwenden Sie "GetObject", aber wenn Workbook geschlossen ist, verwenden Sie "CreateObject". Was ist der Fehler, den Sie bekommen? – ManishChristian

+0

Arbeitsmappe ist geschlossen. Der Fehler, den ich mit diesem Code erhalte, ist Microsoft VBScript-Laufzeitfehler: ActiveX-Komponente kann kein Objekt erstellen: 'Excel.Application' –

0

Sie können GetObject ("Excel.Application") verwenden, aber Sie müssen sicherstellen, dass Sie eine Instanz von Excel öffnen, bevor Sie es verwenden. GetObject wird eine Referenz auf diese geöffnete Instanz von Excel erhalten und Sie können diese verwenden.