Vba VBS运行Excel宏参数不是可选的

Vba VBS运行Excel宏参数不是可选的,vba,excel,vbscript,Vba,Excel,Vbscript,我正在尝试编写运行Excel宏的VBScript代码 我的VBA代码: Sub MyMacro(Name As String) 'do something End Sub 我的VBScript代码: Set objExcel = CreateObject("Excel.Application") objExcel.Application.Run "'C:\MyFile.xlsm'!MyMacro", "MyName" objExcel.Application.Quit

我正在尝试编写运行Excel宏的VBScript代码

我的VBA代码:

Sub MyMacro(Name As String)

   'do something

End Sub
我的VBScript代码:

Set objExcel = CreateObject("Excel.Application")

objExcel.Application.Run "'C:\MyFile.xlsm'!MyMacro", "MyName"    

objExcel.Application.Quit

Set objExcel = Nothing
我得到的错误是:

编译错误:参数不是可选的

如果我通过了一个论点,我怎么会犯这个错误呢? 我做错了什么


谢谢

您需要指定宏所在的模块,例如

"'C:\MyFile.xlsm'.Module1.MyMacro"
下面的链接没有明确指出宏必须驻留在Excel中的VBA模块中,但我相信它必须驻留


请参见示例代码

您需要指定宏所在的模块,例如

"'C:\MyFile.xlsm'.Module1.MyMacro"
下面的链接没有明确指出宏必须驻留在Excel中的VBA模块中,但我相信它必须驻留


参见示例代码

运行VBScript和Excel文件之前,是否确实保存了它<代码>参数非可选表示未传递宏需要的参数。您发布的代码是正确的(我测试过),并且运行时没有任何问题。请验证代码与您在此发布的代码完全相同,并且在运行之前保存了所有文件。是否确实在运行VBScript和Excel文件之前保存了它们<代码>参数非可选表示未传递宏需要的参数。您发布的代码是正确的(我测试过),并且运行时没有任何问题。请验证代码是否与您在此发布的代码完全相同,并且在运行之前保存了所有文件。它应该是
“'C:\MyFile.xlsm'!Module1.MyMacro”
,带有
,而不是
。但这不是问题所在。如果
MyMacro
不是
Private
,则
“'C:\MyFile.xlsm'!MyMacro”
工作正常,无需指定模块。它应该是
“'C:\MyFile.xlsm'!Module1.MyMacro”
,带有
,而不是
。但这不是问题所在。如果
MyMacro
不是
Private
,则
“'C:\MyFile.xlsm'!MyMacro”
工作正常,无需指定模块。