我有一个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"
我在这里弄错了什么?
答案 0 :(得分:0)
关于ActiveDocument
使用Application.Run
时,Word很挑剔。如果函数/过程位于第一个文档引用的另一个文档(主文档的模板除外)中,有时需要首先激活引用的文档。
即使文档已激活,也无法使用项目名称限定功能名称。您可以做的最好的事情是使用模块名称
Link.ThisDocument.Activate
Application.Run "Functions.Foo", "FOO"