1

Я пытаюсь настроить макрос для корректировки кода поля элементов с перекрестными ссылками, чтобы отображались только цифры, например, 3 вместо рисунка 3.

В Интернете я обнаружил, что для этого можно добавить \# "0" к коду поля, и это работает. Мне нужно делать это довольно часто, поэтому я попытался настроить макрос, записывая нажатия клавиш. Это макрос:

Sub Macro1() '' Macro1 Macro '' Выбор.MoveLeft Unit:= wdCharacter, Count:= 1 ActiveWindow.Посмотреть.ShowFieldCodes = не ActiveWindow.Посмотреть.ShowFieldCodes ActiveDocument.Формы.Range(Массив ("Текстовое поле 62")).Выберите Выбор.TypeText Text:= "#" "0" "" ActiveWindow.Посмотреть.ShowFieldCodes = не ActiveWindow.Посмотреть.ShowFieldCodes ActiveDocument.Формы.Range(Массив ("Текстовое поле 62")).Выберите End Sub

К сожалению, это не работает. Коды полей отображаются после запуска, но макрос просто заканчивается после этого, и я получаю следующую ошибку:

Microsoft Visual Basic

Ошибка времени выполнения '9':

Элемент с указанным именем не найден.

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

1 ответ1

1

Чтобы смоделировать ситуацию, которую вы описали, я вставил две диаграммы, затем вставил подписи и, наконец, вставил две перекрестные ссылки. В результате я получил два поля с текстами: рисунок 1 и рисунок 2.

Я использовал ваши результаты для бита \# "0" и собрал следующий макрос, который удаляет текст "Рисунок", оставляя только цифры. Сейчас это работает только для поля Ref, но, думаю, его можно использовать и для других типов полей, перечисленных в перечислении WdFieldType.

Sub UpdateFieldCodes()
    For Each Field In ActiveDocument.Fields
        If Field.Type = wdFieldRef Then
            Field.Code.Text = Field.Code.Text & " \# ""0"""
            Field.Update
        End If
    Next
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .