问题
I have the following two Sub defined in my Word Addin (.dotm) which I have put in StartUp directory
Public Sub SayHi1()
MsgBox "Hi......."
End Sub
Public Sub SayHi2(ByVal n As String)
MsgBox "Hi " & n
End Sub
Then from a new document I am able to call 1st Sub without argument as below:
Sub AppRun_AddIn_NoArg()
Application.Run "MyProject.Module1.SayHi1"
End Sub
But when I try to run the 2nd Sub with argument I get error saying "Object doesn't support this property or method"
Sub AppRun_AddIn_WithArg()
Application.Run "MyProject.Module1.SayHi2", "Tejas"
End Sub
Error Message:

回答1:
This appears to be long-standing problem with Word.
As KB190235 suggests:
Cause:
You have included a template name as part of the Macroname argument string.Resolution:
Remove the template name from the Macroname argument.Workaround:
To avoid naming conflicts among referenced projects, give your procedures unique names, so that you can call a procedure without specifying a project or module.
来源:https://stackoverflow.com/questions/26063986/passing-argument-with-application-run-in-word-vba