在Word VBA中使用Application.Run传递参数

时间:2014-09-26 16:18:05

标签: vba word-vba

我在我的Word Addin(.dotm)中定义了以下两个Sub,它放在StartUp目录中

Public Sub SayHi1()
    MsgBox "Hi......."
End Sub

Public Sub SayHi2(ByVal n As String)
    MsgBox "Hi " & n
End Sub

然后从一个新文档中我可以调用1st Sub而不需要参数如下:

Sub AppRun_AddIn_NoArg()
    Application.Run "MyProject.Module1.SayHi1"
End Sub

但是当我尝试使用参数运行第二个Sub时,我得到错误说"对象不支持此属性或方法"

Sub AppRun_AddIn_WithArg()
    Application.Run "MyProject.Module1.SayHi2", "Tejas"
End Sub

错误讯息: enter image description here

1 个答案:

答案 0 :(得分:2)

这似乎是Word长期存在的问题。

作为KB190235 suggests

  

<强>原因:
  您已将模板名称包含在Macroname参数字符串中。

     

解决:
  从Macroname参数中删除模板名称。

     

解决方法:
  为避免引用项目之间的命名冲突,请为您的过程指定唯一名称,以便可以在不指定项目或模块的情况下调用过程。