Vba VBS运行Excel宏参数不是可选的
我正在尝试编写运行Excel宏的VBScript代码 我的VBA代码: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
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”
,带有如果运行时提供路径/文件名,则在文件名后添加code>,而不是
。但这不是问题所在。如果MyMacro
不是Private
,则“'C:\MyFile.xlsm'!MyMacro”
工作正常,无需指定模块。它应该是“'C:\MyFile.xlsm'!Module1.MyMacro”
,带有如果运行时提供路径/文件名,则在文件名后添加code>,而不是
。但这不是问题所在。如果MyMacro
不是Private
,则“'C:\MyFile.xlsm'!MyMacro”
工作正常,无需指定模块。