无法使用参数调用Word VBA宏

时间:2011-11-04 21:01:54

标签: vba office-2010

我有一个VB6应用程序需要调用Word 2010 VBA例程并提供字符串参数。 VBA例程位于使用打开文档启用的Addin中。

根据MSDN参考(http://msdn.microsoft.com/en-us/library/ff838935.aspx),我应该能够按顺序在宏名称之后提供该参数。

调用例程的代码如下:

sMacro = "Link.Functions.UpdateFootnote"
sParam = "Footnote Text"
DocApp.Run sMacro, sParam

'I've also tried
DocApp.Run MacroName:=sMacro, varg1:=sParam
'and
DocApp.Run "Link.Functions.UpdateFootnote","Footnote Text"

在每种情况下都会产生运行时错误438,“对象不支持此属性或方法。”

DocApp.Run "Link.Functions.UpdateFootnote, Footnote text"

这个给出了运行时错误-2147352573(80020003)“无法运行指定的宏”

作为一个检查,我有一个第二个无参数宏(然后调用原始宏),它工作正常。

DocApp.Run "Link.Functions.UpdateFootnoteTest"

我在这里弄错了什么?

1 个答案:

答案 0 :(得分:0)

关于ActiveDocument使用Application.Run时,Word很挑剔。如果函数/过程位于第一个文档引用的另一个文档(主文档的模板除外)中,有时需要首先激活引用的文档。

即使文档已激活,也无法使用项目名称限定功能名称。您可以做的最好的事情是使用模块名称

Link.ThisDocument.Activate
Application.Run "Functions.Foo", "FOO"