MATLAB ActiveX Selection.GoTo - >书签...错误消息?

时间:2012-01-10 17:38:56

标签: matlab activex

我试图在matlab文件中执行以下操作:

hdlActiveX = actxserver('Word.Application');
hdlActiveX.Selection.GoTo(what, which, count, name);

为了转到word文档中的某个位置,然后在其中写入内容,在书签所在的位置。

在上面的代码示例中,GoTo参数是:

what = -1; % 'wdGoToBookmark'
which = 1; % 'wdGoToAbsolute'
count = 1;
name = 'myBookmark';

此外,即使书签可用,我也只能获得:

??? Invoke Error, Dispatch Exception:
Source: Microsoft Word
Description: The bookmark is not available.
Help File: wdmain11.chm
Help Context ID: 6005

如果您能帮我找到以下问题的答案:

  

1)(主要问题)我怎样才能找到答案,究竟是什么问题?   即如何编写代码才能运行?

     

2)(小问题)我在哪里可以找到,最新的价值,以及哪些(例如   wdGotoBookmark是-1)?

提前谢谢你,

3 个答案:

答案 0 :(得分:0)

我建议先在Word中的VBA编辑器中测试代码。然后将其转换为MATLAB(这应该不难)。

进入Word后,按Alt-F11启动VBA编辑器。要查找常量值,请转到对象浏览器(通过“视图”菜单或按F2),然后在左列中找到WdGoToItem。在右侧,您将看到不同的值,选择一个将在底部面板中显示其值。

我可以重现错误但无法帮助你因为我不确定你要做什么。请提供更多详情。我认为你不能使用Selection对象,你可能需要ActiveDocument。阅读VBA编辑器中的帮助和参考文档,非常好。

以下是Word VBA的online MSDN documentation

答案 1 :(得分:0)

我不确定您的代码是做什么的,但如果您尝试使用自动化服务器查找书签,则可以执行hdlActiveX.ActiveDocument.BookMark('bookmarkname').Select,这会将您带到活动文档中的书签。您的代码没有ActiveDocument,因此可能无效。

答案 2 :(得分:0)

为了在上面的例子中选择ActiveX上的书签,我这样做了:

hdlActiveX.ActiveDocument.Bookmarks.Item('myBookmark').Select

我可以添加我的文字,我想要的地方:

hdlActiveX.Selection.TypeText('myText');

非常感谢大家的提示!