从VBS文件运行宏给出错误

时间:2016-11-23 23:14:27

标签: vba excel-vba vbscript wsh excel

我正在使用vbs代码自动打开并运行Excel宏,但收到以下错误消息:

错误:无法运行宏"文件位置"。宏可能在此工作簿中不可用,或者可能禁用所有宏。 代码:800A03EC 来源:Microsoft Excel

VBS代码:

Dim ObjExcel, ObjWB
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Visible = True


Set ObjWB = ObjExcel.Application.Run("C:\Automation\TestCasesBackupScript.xlsm!Backup3")


ObjWB.Close False
ObjExcel.Quit
Set ObjExcel = Nothing

启用宏并且" Backup3"是TestCasesBackupScript.xlsm文件模块中的子名称。

希望得到反馈。

谢谢。

1 个答案:

答案 0 :(得分:3)

您在Application.Run中引用的工作簿必须在Application对象的上下文中打开。先打开它,然后调用它:

Dim ObjExcel, ObjWB
Set ObjExcel = CreateObject("Excel.Application")
ObjExcel.Visible = True

Set ObjWB = ObjExcel.Workbooks.Open("C:\Automation\TestCasesBackupScript.xlsm")
ObjWB.Application.Run("Backup3")

ObjWB.Close False
ObjExcel.Quit
Set ObjExcel = Nothing

注意:如果Backup3实际返回一个Workbook对象(这是使用语法Set ObjWB = ObjExcel.Application.Run的唯一原因),那么您将希望在其自己的变量中捕获该引用。