Excel 2007: Aus Excel Bookmarks in Word 2007 ansprechen.

19/07/2009 - 16:35 von Mathias | Report spam
Hallo NG

Mir folgender Funktion ersetze ich Bookmarks in einem Wordd-Dokument
mit einer Excel-Verknüpfung.

[Code]
Function Export(objWord As Object, strTextMarke As String)

Selection.Copy
With objWord.ActiveDocument
If .Bookmarks.Exists(strTextMarke) Then
' Tabellenverknüpfung erstellen
.Bookmarks(strTextMarke).Range.PasteSpecial Link:=True,
DataType:=wdPasteOLEObject, _
Placement:=wdInLine, DisplayAsIcon:=False
Application.CutCopyMode = False
End If
End With
Application.Range("A1").Select
End Function
[Code Ende]

Diese Funktion erfüllt ihre Aufgabe bestens.

Nun möchte ich der Verknüpfung wieder den Bookmark-Namen zuweisen.
Versucht habe ich folgenden Code.

[Code]
Function Export(objWord As Object, strTextMarke As String)
Selection.Copy
With objWord.ActiveDocument
Dim rngBMRange As Range

If .Bookmarks.Exists(strTextMarke) Then
' Verweis auf den Textmarkenbereich setzen
dummy = .Bookmarks(strTextMarke).Range ' nur für Test
Set rngBMRange = .Bookmarks(strTextMarke).Range
' Tabellenverknüpfung erstellen
.Bookmarks(strTextMarke).Range.PasteSpecial Link:=True,
DataType:=wdPasteOLEObject, _
Placement:=wdInLine, DisplayAsIcon:=False
'Textmarke neu definieren
.Bookmarks.Add Name:=strTextMarke, Range:=rngBMRange
Application.CutCopyMode = False
Set rngBMRange = Nothing
End If
End With
Application.Range("A1").Select
End Function
[Code Ende]

Da ehhalte ich bei der Zeile Set rngBMrnage = ... die
Fehlermeldung : "Laufzeitfehler 13 Typen unvertràglich."

dummy hat den Wert der TextMarke aus Word. Wert "blablabla"

Ich vermute die Deklaration von "Dim rngBMRange As Range" ist das
Problem. Wie soll Excel wissen, dass
es sich um das Range von Word handelt.

Ich weiss nicht mehr weiter. Suche hilfe.
Dank und Gruss Mathias
 

Lesen sie die antworten

#1 Andreas Killer
20/07/2009 - 09:13 | Warnen spam
On 19 Jul., 16:35, Mathias wrote:

Ich vermute die Deklaration von "Dim rngBMRange  As Range" ist das
Problem. Wie soll Excel wissen, dass
es sich um das Range von Word handelt.


Gehe in den VBA-Editor und setze den Verweis:
"Microsoft Word Object Library"

und ergànze dann die Deklaration:
Dim rngBMRange As Word.Range

Andreas.

Ähnliche fragen