2017-03-10 143 views
3

從AutoSys運行作業,出現錯誤。 VBS運行一個excel宏。 VBS代碼:運行Excel宏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 

錯誤:

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

正如@ ManishChristian的回答所述,'CreateObject'語法在你的代碼中是錯誤的。這導致錯誤。即使您提供了+1000000000的獎勵,在您糾正語法並告訴我們使用正確語法拋出的錯誤之前,也沒有其他答案可能。 –

+0

正如我在迴應中所述,我一直在使用正確的語法,但試圖解決我做出更改的錯誤。我已經編輯了我的問題中的代碼,現在我已經有了,但仍然收到錯誤。請參閱編輯的問題。 –

+0

請參閱http://stackoverflow.com/questions/41405937/active-x-error-with-excel-2016-and-late-binding#comment70015740_41405937。根據您的Excel版本嘗試'CreateObject(「Excel.Application.16」)''或'CreateObject(「Excel.Application.15」)''或'.14'或'.12'。見http://www.rondebruin.nl/win/s9/win012.htm。 –

回答

0

雖然腳本在我的機器上運行,但它不會在AutoSys作業正在使用的機器上運行。我最終發現,Autosys作業正在使用的機器沒有安裝Microsoft Office。

2

您正在使用GetObject語法與CreateObject方法。您需要使用:

Set xlApp = CreateObject("Excel.Application") 

檢查this答案的更多詳細信息。

+0

謝謝,我最初一直在使用Set xlApp = CreateObject(「Excel.Application」),那就是當我得到錯誤。這也不適用於我 –

+0

首先檢查我分享的鏈接的答案。如果您的工作簿已經打開,而不是使用'GetObject',但如果Workbook已關閉,請使用'CreateObject'。你得到的錯誤是什麼? – ManishChristian

+0

工作簿已關閉。我使用此代碼獲得的錯誤是Microsoft VBScript運行時錯誤:ActiveX組件無法創建對象:'Excel.Application' –

0

您可以使用GetObject(「Excel.Application」),但您需要確保在使用它之前打開一個excel實例。 GetObject將獲得對這個打開的Excel實例的引用,並讓你使用它。