Word 2010 VBA粘贴Excel图表对象

Word 2010 VBA粘贴Excel图表对象,vba,charts,ms-word,Vba,Charts,Ms Word,我有一些第三方代码是在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.Align

我有一些第三方代码是在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
它还引发了另一个错误,即
系统错误&H80004005(-2147467259)。未指定的错误
。但在这种情况下,图表实际上粘贴到Word中

是否有人知道问题的原因以及解决方法

我找到了一个解决办法。 首先,我将PasteAndFormat替换为PasteSpecial。既然这个错误毫无意义,我就试着忽略它。成功了!代码如下:

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
...
我找到了解决办法。 首先,我将PasteAndFormat替换为PasteSpecial。既然这个错误毫无意义,我就试着忽略它。成功了!代码如下:

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

可能是Word和Excel
选择
类型不知怎么搞砸了。尝试定义一个
Word.Selection
对象,并在当前设置
Selection
时设置其变量。运气不好。两个粘贴代码的错误消息相同。Hmm。你的代码中根本没有a,是吗?没有原始错误消息的信息-根本没有代码或文本?没有,没有表单,只有动态创建的加载项菜单。是的,错误消息窗口为空,只是确定按钮:)确定-最后一次尝试。:-)从Excel复制并将粘贴记录到Word中时,您似乎可以从纯旧的
选择中获取OLE对象。粘贴
。另外,在处理原始代码时,当剪贴板没有复制
wdChart
类型时,我遇到了错误(#4605)-尝试
选择。粘贴
可能会显示剪贴板上还有其他内容-可能复制命令应该是
myChart。而不是复制
或类似的内容。祝你好运可能是Word和Excel
选择
类型不知怎么搞砸了。尝试定义一个
Word.Selection
对象,并在当前设置
Selection
时设置其变量。运气不好。两个粘贴代码的错误消息相同。Hmm。你的代码中根本没有a,是吗?没有原始错误消息的信息-根本没有代码或文本?没有,没有表单,只有动态创建的加载项菜单。是的,错误消息窗口为空,只是确定按钮:)确定-最后一次尝试。:-)从Excel复制并将粘贴记录到Word中时,您似乎可以从纯旧的
选择中获取OLE对象。粘贴
。另外,在处理原始代码时,当剪贴板没有复制
wdChart
类型时,我遇到了错误(#4605)-尝试
选择。粘贴
可能会显示剪贴板上还有其他内容-可能复制命令应该是
myChart。而不是复制
或类似的内容。祝你好运