У меня есть макрос, который выбирает все гиперссылки и перекрестные ссылки из документа. Я добавляю каждый из них в список, который отображается пользователю.
Когда существует несколько перекрестных ссылок с одним и тем же текстом, как я могу их различить?
Для гиперссылок я могу использовать hyperlink.Name
, который будет возвращать уникальное имя.
Что я могу использовать для идентификации перекрестной ссылки? Есть ли поле, которое я могу использовать, например, Name
для гиперссылки?
Я использую приведенный ниже код для поиска перекрестных ссылок:
For Each objFld In ActiveDocument.Fields
If objFld.Type = wdFieldRef Then
' add objFld
..
РЕДАКТИРОВАТЬ:
Я использую objFld.result.Start
, чтобы получить позицию перекрестной ссылки, но это происходит для броска, когда пользователь обновляет любую предыдущую перекрестную ссылку.
РЕДАКТИРОВАТЬ2:
Я наткнулся на этот ответ на SO, и он побудил меня добавить ниже в мой код:
objFld.ShowCodes = True
objFld.Select
Selection.Collapse wdCollapseStart
Selection.MoveStartUntil "_"
Selection.MoveEndUntil " "
refName = Selection.Text
objFld.ShowCodes = False
Так что теперь я могу прочитать поле с REF _Ref528247211 \h
и получить _Ref528247211
в refName
.
Однако, если существует несколько перекрестных ссылок или гиперссылок на одну и ту же цель, я не могу их различить.
Как мне это сделать?
EDIT2:
У меня есть пользовательская форма, в которой я перечисляю гиперссылки и перекрестные ссылки. Пользователь должен иметь возможность дважды щелкнуть каждый элемент и обновить при необходимости. Для этого мне нужно различать каждое вхождение гиперссылки / перекрестной ссылки
На следующем рисунке показан мой список, заполненный из Раздела 1.11, на который ссылаются несколько раз на странице 39. Имена гиперссылок одинаковы