我有一个真正简单的代码来打开excel工作表并运行其中的宏。我四处搜寻,以找出为什么这行不通,但是一切都告诉我要完全按照我的方式来编写代码。 vbs会毫无问题地打开excel文件,但是当它到达行objExcel.Run "MyMacro"
时,出现一个错误,提示它无法运行宏,因为它可能不可用或所有宏都被禁用了。
我尝试了几件事,例如确保所有宏都在打开时启用,我还尝试将其设置为Public Sub
,但没有运气。
如果我将代码放在工作表中并使用objExcel.Run "Sheet1.MyMacro"
可以正常工作,但是我有多个宏,并且我不想将它们放在工作表中,我想从模块中运行它。我究竟做错了什么?
这是我的代码:
Dim objExcel, objWorkbook
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:MyPath\MyFile.xlsm")
objExcel.Visible = True
objExcel.Run "MyMacro"
objWorkbook.Close
objExcel.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
WScript.Echo "Finished."
WScript.Quit
如果将其放在工作表中,这是可以工作的代码:
Dim objExcel, objWorkbook
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:MyPath\MyFile.xlsm")
objExcel.Visible = True
objExcel.Run "Sheet1.MyMacro"
objWorkbook.Close
objExcel.Quit
Set objWorkbook = Nothing
Set objExcel = Nothing
WScript.Echo "Finished."
WScript.Quit
请帮助!我知道这并不困难,但是我搜索过的所有内容都告诉我完全按照自己的方式做。
谢谢!