Удобное добавление номера заголовка И текста для перекрестной ссылки

Удобное добавление номера заголовка И текста для перекрестной ссылки

Я в основном пишу техническую документацию. Документы требуют много перекрестных ссылок. Формат моих перекрестных ссылок всегда одинаков:

<heading-number> <space> <heading-text>.

Добавление их с помощью диалога перекрестных ссылок — это боль. Найдите заголовок, выберите номер абзаца из раскрывающегося списка, вставьте, выберите текст абзаца из раскрывающегося списка, вставьте, вернитесь к документу, вставьте пробел (и, как правило, измените вставленный текст заголовка на курсив).

Есть ли более удобный способ сделать это? Я посмотрел существующие вопросы о перекрестных ссылках (а их там много), но ни один из них не затрагивал эту проблему.

решение1

Я написалмакросдля удобной вставки перекрестных ссылок, избегая всех хлопот диалога перекрестных ссылок, который вы описали.
Он может вставлять либо , <heading-number>либо <heading-text>, но его можно легко адаптировать для вставки желаемой комбинации обоих.

решение2

7 лет назад, а люди все еще борются с этим. Вот мой небольшой вклад: Dim strCode As String

With Dialogs(wdDialogInsertCrossReference)
    .ReferenceType = "Numbered item"
    .ReferenceKind = wdNumberRelativeContext
    .InsertAsHyperlink = True
    .SeparateNumbers = False
    .Show
End With
Selection.TypeBackspace 'trick it selects the complete field
Selection.Copy
Selection.MoveRight Unit:=wdCharacter, Count:=1 ' unselect
Selection.TypeText Text:=" " ' Separate with one space
Selection.PasteAndFormat (wdPasteDefault) ' duplicate the copied field
Selection.TypeBackspace ' Select the duplicated field
strCode = Selection.Fields(1).Code ' get the code from the field
strCode = Replace(strCode, "\r ", "") ' Remove option to have paragraph text
strCode = Replace(strCode, "\w ", "")
Selection.Fields(1).Code.Text = strCode ' Update the text of the ;code text
Selection.Fields.Update ' Update the field to display § text
Selection.MoveRight Unit:=wdCharacter, Count:=1 ' Deselect the updated field
Selection.TypeText Text:=" " ' add a space at the end

Конец субтитра

Если оставить все как есть, то у меня все работает ;-) Развлекайтесь и проводите время за развлечениями...

решение3

Решение Винса С. работает отлично. Мне не разрешено комментировать, так как у меня еще нет репутации 50, но, Винс, твое решение блестящее! Оно экономит мне кучу времени.

Связанный контент