Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Word Objekt in Funktion verwenden Fehler

Forumthread: Word Objekt in Funktion verwenden Fehler

Word Objekt in Funktion verwenden Fehler
11.02.2022 10:55:29
MKO
Hallo zusammen,
ich benötige bei folgendem Fall eure Hilfe:
https://www.herber.de/bbs/user/151061.xlsm
Ich möchte gerne den Inhalt einer Zelle einer Excel-Datei, welche der Nutzer auswählt, in eine bestimmte Textmarke einer Word-Vorlage einfügen, ohne dass die Textmarke dabei gelöscht wird. Denn zu der übergebene Inhalt, welcher in die Textmarke eingefügt wird, kommt an mehreren Stelln im Word-Doc vor. In der Word-Vorlage habe ich deshalb Felder, welche die Textmarke referenzieren eingefügt.
Beim Versuch, die Word-Datei der Funktion zu übergeben, erhalte ich den Fehler "Typen unverträglich".
hier der Code (Fett markiert, wo der Fehler auftritt):

Sub ExportToWord()
Dim wordapp As New Word.Application
Dim doc As Word.Document
Dim filepathRM As String
Dim wbRM As Workbook
Dim sw_name As String
Const StartDrive = "M:"
Const StartDir = "\"
ChDrive StartDrive
ChDir StartDir
'RM auswählen
filepathRM = Application.GetOpenFilename("Excel-Dokumente, *.xlsx; *.xlx", , "Bitte Risikomanagement-Datei auswählen")
If filepathRM = "" Or False Then
Exit Sub
Else
Set wbRM = Workbooks.Open(filepathRM)
End If
'Word im Vordergrund initialisieren
Set wordapp = CreateObject("Word.Application")
Set doc = wordapp.Documents.Open("Word-Vorlage Pfad")
With wordapp
.Visible = True
End With
'word datei mit Excel Inhalt befüllen
sw_name = wbRM.Sheets("Tabelle1").Cells(4, 2).Value
'doc.Bookmarks("sw_name").Range.Text = sw_name      --> Bookmark in Word wird entfernt, Verweise funktionieren nicht mehr
UpdateBookmark doc, "sw_name", sw_name
'Word-Datei abspeichern
ActiveDocument.SaveAs2 ThisWorkbook.Path & "\Validation Plan " & sw_name & ".docx"
End Sub

Public Function UpdateBookmark(wdoc As Document, BookmarkToUpdate As String, TextToUse As String)
Dim BMRange As Range
Set BMRange = wdoc.Bookmarks(BookmarkToUpdate).Range
BMRange.Text = TextToUse
wdoc.Bookmarks.Add BookmarkToUpdate, BMRange
End Function
Ich würde mich über eure Hilfe freuen!
VG
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word Objekt in Funktion verwenden Fehler
11.02.2022 11:44:45
Rudi
Hallo,
vielleicht solltest du das besser in einem Word-Forum fragen.
Ich vermute aber, dass
Dim BMRange As Range
zu dem Fehler führt, da Range als Excel-Range interpretiert wird. Versuch's mal mit Variant.
Gruß
Rudi
AW: Word Objekt in Funktion verwenden Fehler
11.02.2022 11:56:12
MKO
@Rudi Maintaire
Vielen Dank! Habe "Dim BMRange As Variant" ausprobiert. So funktioniert es!
Anzeige
AW: Word Objekt in Funktion verwenden Fehler
11.02.2022 12:54:53
Luschi
Hallo MKO,
Du vermengst bei der Verbindung zur Worddatei 'late binding' mit 'early binding' und das ist keine gute Kombination.
late binding: Set wordapp = CreateObject("Word.Application")
Dafür wird kein Extra-Verweis benötigt, aber alle Word-Objekte als 'Object' definiert und nicht als Variant.
Vorteil: Es wird immer die neueste Word-Bibliothek beim initialisieren genommen
Nachteil: Word-Objekte nicht automatisch bekannt (Dim BMRange As wdoc.Parent.Range)
und Word-Konstanten mussen in Excel neu definiert werden.
early binding: Dim wordapp As New Word.Application
Dafür wird aber der Extra-Verweis zur Word-Bibliothek benötigt
Vorteil: alle Word-Objekte und Konstanten sind zur Programmierzeit bekannt
Nachteil: wenn mehrere Word-Versionen im Spiel sind, kann das automatische Umschalten auf die andere Word-Bibliothek Probleme bereiten.
hier mal mein Beispiel dazu: https://www.herber.de/bbs/user/151063.zip
Gruß von Luschi
aus klein-Paris
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige