2017-03-10 140 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实例的引用,并让你使用它。