Wie kann ich den Laufzeitfehler 5941 "Das angeforderte Element ist nicht in der Sammlung vorhanden" bei Word, wenn ich ein Makro aufzeichne, verhindern?

1 Antwort

Hallo,

leider kann ich dir so noch nicht wirklich weiterhelfen.

Wie kann ich den Laufzeitfehler 5941 »Das angeforderte Element ist nicht in der Sammlung vorhanden« bei Word, wenn ich ein Makro aufzeichne, verhindern?

Um welches Element geht es denn? Also welches Element/welcher Befehl wird dir denn gelb markiert, wenn du bei der Fehlermeldung den Debugger aufrufst?

Bei meinen eigenen Makros tauchte der Fehler beispielsweise auf, wenn ich vergessen hatte, eine Textmarke zu definieren und auf diese dann zugreifen wollte. Wenn es die Textmarke im Dokument aber nicht gibt, spuckt Word diese Fehlermeldung aus.

Für die Beantwortung der Frage wäre dein Code sehr hilfreich. Dann kann man den Fehler leichter nachvollziehen.

Ich versuche ein Makro aufzuzeichnen, welches mir Deckblatt und Inhaltsverzeichnis in ein Word Dokument einfügt.

Der Befehl, um ein Deckblatt in Word einzufügen, könnte beispielsweise so aussehen:

Application.Templates("C:\Users\<Dein Benutzername>\AppData\Roaming\Microsoft\Document Building Blocks\1031\14\Built-In Building Blocks.dotx").BuildingBlockEntries("Nadelstreifen").Insert Where:=Selection.Range, RichText:=True

Dabei wird der Name des Deckblatts ("Nadelstreifen") angegeben, der in der Dokumentvorlage Built-In Building Blocks gespeichert ist. Wäre dieses Deckblatt nicht vorhanden, könnte ich mir vorstellen, dass diese Fehlermeldung kommt.

Hier ist es vor allem auch wichtig, dass du Word sagst, wo dein Deckblatt zu finden ist, also wo es gespeichert wurde.

Ich kann mir auch vorstellen, dass Word diesen Fehler meldet, wenn hier die Dokumentvorlage Building Blocks nicht am angegebenen Ort auf dem Rechner vorhanden ist. Das sind aber alles nur Vermutungen, denn getestet habe ich das nicht.

Der Befehl für das Erzeugen des Inhaltsverzeichnisses könnte so aussehen:

With ActiveDocument
.TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _
UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:=True
.TablesOfContents(1).TabLeader = wdTabLeaderDots
.TablesOfContents.Format = wdIndexIndent
End With

Allerdings wüsste ich jetzt nicht, dass bei diesem Befehl nach einem Element gesucht würde, das diese Fehlermeldung erzeugen könnte.

So, ich hoffe, das hilft vorerst ein bisschen weiter.

Wie gesagt, für die Beantwortung der Frage wäre dein Code ganz gut.

Gruß, BerchGerch

Woher ich das weiß:eigene Erfahrung – Ich arbeite seit 30 Jahren nahezu täglich mit Word.