Wieso unverträgliche Typen bei diesem Code?
Hi, da bin ich wieder. Nun bin ich wieder einen guten Schritt weiter.
Problem: Ich habe geschlossene Textmarker in Word, dessen Inhalt über Excel gefüllt/ersetzt werden soll.
Ich habe folgenden Code:
Public Sub ReSetBookmark(ByVal doc As Object, ByVal TMName As String, ByVal TMInhalt As String)
'Recycling-Textmarke mit übernommenen Werten, geht für alle Textmarken
Dim bm As Bookmark
Dim rng As Range
If doc.Bookmarks.Exists(TMName) Then
Set bm = doc.Bookmarks(TMName)
Set rng = bm.Range
rng.Text = TMInhalt
doc.Bookmarks.Add Name:=TMName, Range:=rng
End If
Set rng = Nothing
Set bm = Nothing
End Sub
Der Code wurde im Netz mehrfach geposted.
Nur erhalte ich einen Fehler wegen Typenunverträglichkeit in dieser Zeile:
Set rng = bm.Range
wenn ich aber mit der Maus draufzeige, sehe ich dass der Inhalt dieser Range richtig angezeigt wird: " " (im Bereich der Textmarke ist nur ein Leerzeichen).
Ich verstehe einfach nicht, warum der Code nun stehen bleibt.
Kann bitte jemand helfen?
Dankeschön.
1 Antwort
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Microsoft Excel
Bei mir geht es, wenn ich es direkt in Word implementiere. Mein Aufruf:
Sub optimierer()
ReSetBookmark Documents(1), "Lesezeichen", "Ersatztext"
End Sub
@Suboptimierer
Hi, ich hatte den Fehler schon gefunden, war ein Fehler bei der Typenvergabe.
In Excel kann ich den Fehler nachvollziehen. Ich kenne die genaue Bezeichnung der Worddatentypen nicht, wie ich sie in Excel verwenden muss.
Eine typenlose Definition könnte dir fürs Erste helfen: