Получить индекс закладки с помощью system.Information () - PullRequest
1 голос
/ 26 марта 2019

Я использую нижнюю строку, чтобы получить выбранный выпадающий список из одобрения.

ActiveDocument.FormFields(ActiveDocument.Range.Bookmarks(Selection.Information(30)).Name).Dropdown.Value

Но я не могу получить правильный индекс закладок через Selection.Information(30), поэтому получаю неправильное имя закладки.

Может кто-нибудь, пожалуйста, помогите мне здесь.

1 Ответ

0 голосов
/ 28 марта 2019

Более «традиционный» способ получить имя текущей активной / выбранной закладки:

Selection.Bookmarks(1).Name

Поскольку это поле формы, также возможно получить имя через него.collection:

Selection.Range.FormFields(1).Name

В комментарии запрос относится к индексу закладок, хотя запрос в Вопросе относится к имени закладки ... В любом случае, чтобы получить индекс закладки, получите счетчик всехзакладки от начала документа до конца выделения.(Обратите внимание, что это получает индекс последней предыдущей закладки, который не является обязательным в выделении):

bkmIndex = ActiveDocument.Range(0, Selection.Range.End).Bookmarks.Count
Debug.Print ActiveDocument.Bookmarks(bkmIndex).Name

Обратите внимание, что Information(30) - это старое значение Word Basic (Мне пришлось искать это в литературе 1995 года), которая не имеет официального эквивалента в объектной модели VBA.Это все еще работает по причинам обратной совместимости, но в таких случаях нет никаких гарантий, что это продолжит работать.

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