Hallo,
ich probiere mich gerade an meinem ersten VBA-Makro-Projekt und bekomme nun leider eine Fehlermeldung, bei der ich alleine keine Idee mehr habe, wie ich sie beheben könnte. Vielleicht könnt ihr mir ja helfen :) Ich nutze Office 2016.
Das Makro soll mehrere Tabellen aus Excel kopieren (die entsprechenden Ranges sind benannt als Tabelle_i, i = 1,...,17) und an bestimmte Stellen in einem Word-Dokument als Grafiken einfügen (dafür habe ich Textmarken mit den Namen Tabelle_i, i=1,...,17 angelegt). Wenn ich das Makro nun ausführe, erhalte ich aber den Laufzeitfehler 4605 "Dieser Befehl ist nicht verfügbar" an der Stelle, an der gepastet werden sollte. Der Fehler tritt nach unterschiedlich vielen Schleifendurchläufen auf, mal bei Tabelle_3, mal bei Tabelle_8, mal bei Tabelle_11... Führe ich das Makro Schritt für Schritt im Debug-Modus aus, läuft alles wie gewünscht durch.
Wo könnte das Problem liegen?
Vielen Dank schon mal für eure Hilfe!
Johanna
Sub Word_aktualisieren()
Dim wdApp As Word.Application
Dim wdDoc As Word.Document
Dim wbBook As Workbook
Dim wsSheet As Worksheet
Dim wdName As Object
Dim objPic As Word.InlineShape
Dim ils As Word.InlineShape
Dim n As Long
Dim i As Integer
Set wbBook = ThisWorkbook
Set wdName = wbBook.Worksheets("Deckblatt").Range("C4")
Set wdApp = New Word.Application
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Open(wbBook.Path & wdName.Value)
For Each objPic In wdDoc.InlineShapes
objPic.Delete
Next objPic
i = 1
Do While i < 17
wbBook.Names("Tabelle_" & i).RefersToRange.Copy
n = wdDoc.InlineShapes.Count
wdDoc.Bookmarks("Tabelle_" & i).Range.PasteSpecial Placement:=wdInLine, DataType:=wdPasteEnhancedMetafile
Set ils = wdDoc.InlineShapes(n + 1)
ils.ScaleHeight = 68
ils.Range.ParagraphFormat.Alignment = wdAlignParagraphCenter
i = i + 1
Loop
With wdDoc
.Save
.Close
End With
wdApp.Quit
Set wdDoc = Nothing
Set wdApp = Nothing
End Sub
|