MS Word-VBA-Fehler: "Das Element mit dem angegebenen Namen wurde nicht gefunden"

984
Marouf

Ich versuche, ein Makro einzurichten, um den Feldcode von Artikeln, auf die verwiesen wird, so anzupassen, dass nur die Zahlen angezeigt werden, z. B. 3 anstelle von Abbildung 3.

Ich habe online gefunden, dass der \# "0"Feldcode dazu hinzugefügt werden kann und das funktioniert. Ich muss das allerdings ziemlich oft machen, also habe ich versucht, ein Makro einzurichten, indem ich meine Tastatureingaben aufzeichne. Dies ist das Makro:

Sub Macro1 () '' Macro1 Macro '' Selection.MoveLeft Unit: = wdCharacter, Count: = 1 ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes ActiveDocument.Shapes.Range (Array ("Textfeld 62")). Wählen Sie Selection.TypeText Text aus: = "#" "0" "" ActiveWindow.View.ShowFieldCodes = Not ActiveWindow.View.ShowFieldCodes ActiveDocument.Shapes.Range (Array ("Textfeld 62")). Wählen Sie End Sub aus

Leider funktioniert es nicht. Die Feldcodes werden zwar angezeigt, nachdem ich es ausgeführt habe, aber das Makro endet danach und ich erhalte die folgende Fehlermeldung:

Microsoft Visual Basic

Laufzeitfehler '9':

Der Artikel mit dem angegebenen Namen wurde nicht gefunden.

Ich habe keine Ahnung, wie ich das beheben kann, und würde mich über jede Hilfe sehr freuen.

1

1 Antwort auf die Frage

1
wlod

Um die beschriebene Situation zu simulieren, habe ich zwei Diagramme eingefügt, dann Beschriftungen eingefügt und schließlich zwei Querverweise eingefügt. Als Ergebnis bekam ich zwei Felder mit Texten: Abbildung 1 und Abbildung 2 .

Ich habe Ihre Erkenntnisse für das \# "0"Bit verwendet und das folgende Makro zusammengestellt, das den Text "Figure" entfernt und nur Zahlen hinterlässt. Es funktioniert jetzt nur für das Feld "Ref", aber ich denke, es kann auch für andere Feldtypen verwendet werden, die in der WdFieldType-Enumeration aufgeführt sind.

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