Vba 从VBS文件运行宏时出错
我正在使用vbs代码自动打开并运行Excel宏,但收到以下错误消息: 错误:无法运行宏“文件位置”。该宏可能在此工作簿中不可用,或者可能已禁用所有宏。 代码:800A03EC 资料来源:Microsoft Excel VBS代码:Vba 从VBS文件运行宏时出错,vba,excel,vbscript,wsh,Vba,Excel,Vbscript,Wsh,我正在使用vbs代码自动打开并运行Excel宏,但收到以下错误消息: 错误:无法运行宏“文件位置”。该宏可能在此工作簿中不可用,或者可能已禁用所有宏。 代码:800A03EC 资料来源:Microsoft Excel VBS代码: Dim ObjExcel, ObjWB Set ObjExcel = CreateObject("Excel.Application") ObjExcel.Visible = True Set ObjWB = ObjExcel.Application.Run("C
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文件模块中的子名称
希望得到反馈
谢谢。您在
应用程序.Run中引用的工作簿必须在应用程序
对象的上下文中打开。只需先打开它,然后调用它:
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
实际返回工作簿对象(这是使用语法Set ObjWB=ObjExcel.Application.Run
的唯一原因,您需要在其自身变量中捕获该引用。您在应用程序中引用的工作簿。Run
必须在应用程序
对象的上下文中打开。只需先打开它,然后调用它:
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
实际返回工作簿对象(这是使用语法Set ObjWB=ObjExcel.Application.Run
的唯一原因),您将希望在其自身变量中捕获该引用。感谢您的反馈。更改代码后,我收到以下错误:“无法运行宏‘Backup3’。该宏可能在此工作簿中不可用,或者可能已禁用所有宏。代码:800A03EC。源代码:Microsoft Excel。”此行出错:ObjWB.Application.run(“Backup3”)。在我将宏从模块移动到Microsoft Excel对象-->Sheet1(Sheet1)后,该宏工作正常。”。将之前出现错误的行更改为:ObjWB.Application.Run(“Sheet1.Backup3”)-感谢您的反馈,它帮助我找到了正确的位置。感谢您的反馈。更改代码后,我出现以下错误:无法运行宏“Backup3”。该宏可能在此工作簿中不可用,或者可能已禁用所有宏。代码:800A03EC。来源:Microsoft Excel。此行出错:ObjWB.Application.run(“Backup3”)。在我将宏从模块移动到Microsoft Excel对象-->Sheet1(Sheet1)后,该宏正常工作。将之前出现错误的行更改为:ObjWB.Application.Run(“Sheet1.Backup3”)-感谢您的反馈,它帮助我找到了正确的位置。