Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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!
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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige