MATLAB ActiveX Selection.GoTo -> Закладка ... сообщение об ошибке? - PullRequest
0 голосов
/ 10 января 2012

Я пытаюсь выполнить следующее в файле 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 голосов
/ 11 января 2012

Я не уверен, что делает ваш код, но если вы пытаетесь найти закладку с помощью сервера автоматизации, вы можете сделать hdlActiveX.ActiveDocument.BookMark('bookmarkname').Select, что приведет вас к закладке в активном документе. Ваш код не имеет ActiveDocument, поэтому он может не работать.

0 голосов
/ 11 января 2012

Чтобы выбрать закладку поверх ActiveX в приведенном выше примере, я сделал это:

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

Чем я мог добавить свой текст, где я хотел:

hdlActiveX.Selection.TypeText('myText');

Спасибовам всем большое за советы!

0 голосов
/ 10 января 2012

Я бы рекомендовал сначала протестировать код в редакторе VBA в Word. Затем преобразуйте его в MATLAB (что не должно быть сложно).

После входа в Word нажмите Alt-F11, чтобы запустить редактор VBA. Чтобы найти значения для констант, перейдите в Object Browser (через меню View или нажмите F2) и в левом столбце найдите WdGoToItem. Справа вы увидите разные значения, при выборе одного из них вы увидите значения в нижней панели.

Я могу воспроизвести ошибку, но не могу помочь вам, так как я не уверен, что вы пытаетесь сделать. Пожалуйста, дайте больше деталей. Я думаю, что вы не можете использовать Selection объект, вам, вероятно, понадобится ActiveDocument. Прочитайте справочную и справочную документацию в редакторе VBA, это очень хорошо.

Вот онлайновая документация MSDN для Word VBA.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...