Word 2010 VBA粘贴Excel图表对象
我有一些第三方代码是在Word 2003中开发的,但在Word 2010中不起作用。 代码应该粘贴一个Excel.Chart对象,并将其转换为内联形状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
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。而不是复制或类似的内容。祝你好运