我有一些在Word 2003中开发的第三方代码,但它在Word 2010中不起作用。 代码应粘贴Excel.Chart对象并将其转换为内联形状。
Sub PasteChartAsInteractive(chart As Excel.chart)
Dim myShape As Shape
chart.ChartArea.Copy
Selection.Style = ActiveDocument.Styles("Normal")
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.PasteAndFormat (wdChart)
Set myShape = Selection.Paragraphs(1).range.InlineShapes(1).ConvertToShape
myShape.ConvertToInlineShape
...
首先,PasteAndFormat
行引发了一条空错误消息。
然后我尝试用
替换该行Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement _
:=wdInLine, DisplayAsIcon:=False
它引发了另一个错误,说System Error &H80004005 (-2147467259). Unspecified error
。但在这种情况下,图表实际上粘贴到Word中。
有人知道导致问题的原因以及应该如何解决问题吗?
TIA
答案 0 :(得分:1)
我找到了解决方案。 首先,我用PasteSpecial替换了PasteAndFormat。然后,由于错误没有意义,我试图忽略它。它奏效了!这是代码:
Sub PasteChartAsInteractive(chart As Excel.chart)
Dim myShape As Shape
chart.ChartArea.Copy
Selection.Style = ActiveDocument.Styles("Normal")
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
' Selection.PasteAndFormat (wdChart)
On Error Resume Next
Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement _
:=wdInLine, DisplayAsIcon:=False
Set myShape = Selection.Paragraphs(1).range.InlineShapes(1).ConvertToShape
myShape.ConvertToInlineShape
...