首页 文章

PowerPoint 2013“PasteSpecial”不会将Excel图表嵌入为OLE对象

提问于
浏览
0

我在PowerPoint中编写了一个宏,作为其过程的一部分,将通过复制源Excel图表并将复制的图表粘贴为OLE对象,将PowerPoint演示文稿中的链接图表转换为嵌入图表 - 具体命令是,“sldComponent.Shapes.PasteSpecial(ppPasteOLEObject)” .

直到今天,这在2003年到2010年的所有版本中都运行良好 . 但是,在2013/365尝试运行此功能时,我不断收到运行时错误,指出“指定的数据类型不可用”(-2147188160 / 80048240) . 我还注意到,在Microsoft Developers Reference网页中,“ppPasteOLEObject”不再列为PasteSpecial方法的可接受数据类型(与Shapes集合一起使用时) .

我已经找到了几种以编程方式将图表粘贴为图片的方法,但每当我点击粘贴的图表并尝试访问数据时,我都会收到消息"The linked file is not available."我希望数据完全自包含,以便PowerPoint用户可以编辑它而不参考原始Excel文件 . 有趣的是,当我在有缺陷的线上停止PowerPoint宏,然后在功能区上手动单击"Paste"时,复制的图表会将完全嵌入了可访问数据的图表粘贴到活动幻灯片中 - 因此图表将被复制到剪贴板中;由于某种原因,PowerPoint宏根本无法读取和粘贴它 . 更有趣的是(阅读:令人沮丧),PasteSpecial(ppPasteOLEObject)命令适用于从Excel复制的表格,即单元格范围,但不适用于图表 .

发生了什么?如何使用PowerPoint 2013中的VBA代码嵌入(即插入以前创建的,自包含的Excel图表,包括演示幻灯片中的所有数据)新版本中的Excel图表?

ADD:我还应该注意,用于从Excel中的源工作表获取图表的命令是“xlCopySheet.ChartObjects(1).Select”,然后是“appExcel.Selection.Copy” . 问题是所选的复制语法不是捕获整个图表,包括数据而只是显示?这里使用的正确复制语法是什么?

补充2:进一步说明:虽然应用程序本身是2013 / Office 365版本,但原始宏已保存并在兼容性(97-2003)模式下同时运行Excel和PowerPoint .

1 回答

  • 0

    如果将图表粘贴为“Microsoft Office图形对象”,则图表将粘贴为Excel图表 . 您可以使用Excel功能区的“图表工具”选项卡在PowerPoint中对其进行格式化 . 如果单击任何编辑/选择数据按钮,它将在Excel中打开数据 .

    如果将图表粘贴为Microsoft Excel图表对象,它将粘贴为嵌入式工作簿(整个工作簿,而不仅仅是图表及其数据),并在嵌入式工作簿中插入新的图表工作表,此图表工作表是什么是可见的 . 您需要双击以格式化或编辑图表,这会在Excel中打开嵌入式工作簿,并且可能会弄乱嵌入对象的大小(因此它是图表工作表大小,而不是图表嵌入工作表大小)和字体大小之类的东西 .

    如果我在Excel中复制图表并在PowerPoint VB立即窗口中使用它

    activepresentation.Slides(3).Shapes.PasteSpecial ppPasteOLEObject
    

    我得到了第二个行为 .

    您可能想尝试使用以下方法复制图表:

    xlCopySheet.ChartObjects(1).Chart.Copy
    

相关问题