I keep getting the 462 error the second or third time I run this loop. I don't think I have any objects that are floating but maybe I missed something, I am kind of new at this. This macro is taking all the charts from Excel, pasting them into Word as pictures, resizing them, saving the document and closing it. The For loop has formatting for the chart to be pasted as a normal picture and the text below it to be caption so I can create a figure table easily.
The error takes place in the
.Height = InchesToPoints(6.1) line.
Private Sub ChartstoWord_Click() Dim WDApp As Word.Application Dim WDDoc As Word.Document Dim cname, wordname, restage, pNumber, wfile As String Dim n As Integer Dim i As Long Application.ScreenUpdating = False If wordfile.Value = "" Then MsgBox "Please enter a word file name", vbOKOnly Exit Sub End If wfile = CurveDirectoryBox & "\" & wordfile.Value & ".docx" wordname = UCase(dataname.Value) 'if word file doesn't exist then it makes the word file for you If Dir(wfile) = "" Then Set WDApp = CreateObject("Word.application") WDApp.Visible = True Set WDDoc = WDApp.Documents.Add WDApp.Visible = True With WDDoc .SaveAs wfile .Close End With Set WDDoc = Nothing WDApp.Quit Set WDApp = Nothing End If ' Create new instance of Word and open filename provided if file exists Set WDApp = CreateObject("Word.application") WDApp.Visible = True WDApp.Documents.Open wfile WDApp.Visible = True Set WDDoc = WDApp.ActiveDocument With WDDoc .Range(start:=.Range.End - 1, End:=.Range.End - 1).Select .PageSetup.Orientation = wdOrientLandscape End With For n = 1 To Charts.Count Charts(n).Select cname = ActiveChart.ChartTitle.Characters.Text ActiveChart.CopyPicture _ Appearance:=xlScreen, Format:=xlPicture ' Paste chart at end of current document WDApp.Visible = True With WDApp .Selection.Style = WDApp.ActiveDocument.Styles("Normal") .Selection.Font.Size = 12 .Selection.Font.Bold = True .Selection.PasteSpecial Link:=False, Placement:=wdInLine, DisplayAsIcon:=False, DataType:=wdPasteEnhancedMetafile .Selection.TypeParagraph .Selection.Style = WDApp.ActiveDocument.Styles("Caption") .Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter .Selection.Font.Size = 12 .Selection.Font.Bold = False .Selection.TypeText (wordname + " " + cname) .Selection.TypeParagraph End With Next n 'resize all pictures WDApp.Visible = True With WDApp With WDDoc For i = 1 To WDApp.ActiveDocument.InlineShapes.Count With WDApp.ActiveDocument.InlineShapes(i) '.Width = InchesToPoints(7.9) .Height = InchesToPoints(6.1) End With Next i End With End With WDDoc.Save WDDoc.Close Set WDDoc = Nothing WDApp.Quit Set WDApp = Nothing Worksheets("Control").Activate Range("A1").Select Application.ScreenUpdating = True End Sub