Ошибка MS Word VBA: «Элемент с указанным именем не найден»

679
Marouf

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

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

Sub Macro1 () '' Macro1 Macro '' Selection.MoveLeft Единица измерения: = wdCharacter, Count: = 1 ActiveWindow.View.ShowFieldCodes = Не ActiveWindow.View.ShowFieldCodes ActiveDocument.Shapes.Range (Array ("Текстовое поле 62")). Select Selection.TypeText Text: = "#" "0" "" ActiveWindow.View.ShowFieldCodes = не ActiveWindow.View.ShowFieldCodes ActiveDocument.Shapes.Range (Array ("Text Box 62")). Выберите End Sub

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

Microsoft Visual Basic

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

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

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

1

1 ответ на вопрос

1
wlod

Чтобы смоделировать ситуацию, которую вы описали, я вставил две диаграммы, затем вставил подписи и, наконец, вставил две перекрестные ссылки. В результате я получил два поля с текстами: рисунок 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 

Похожие вопросы