如何在没有链接的情况下将Excel VBA PasteSpecial图表插入PowerPoint?

时间:2019-06-10 11:20:07

标签: excel vba charts powerpoint

我正在编写一个实用程序,用于将图表和表格从Excel复制到Powerpoint演示文稿中。 要求之一是能够以以下三种方式之一进行粘贴。其中两个很简单。我遇到这个问题: 作为可编辑的图表,但链接处于禁用状态,因此用户可以在Powerpoint中设置图表格式,但在Excel中对原始图表数据的更改不会通过。

我该怎么做?

我已经尝试了几乎所有我能想到的数据类型和链接选项,例如

activeSlide.Shapes.PasteSpecial DataType:=ppPasteShape, Link:=msoFalse
activeSlide.Shapes.Paste
ppApp.CommandBars.ExecuteMso "PasteSourceFormatting"
activeSlide.Shapes.PasteSpecial DataType:=ppPasteDefault, Link:=msoFalse
activeSlide.Shapes.PasteSpecial DataType:=ppPasteOLEObject, Link:=msoFalse 

即使发生先前的5000 DoEvent循环,PasteOLEOBject也会使Excel崩溃

但是它要么粘贴为无法在PowerPoint中编辑的图表,要么粘贴为可以编辑但仍链接到源数据的图表,以便它更改Powerpoint的更改。

1 个答案:

答案 0 :(得分:0)

取消请求。 我发现粘贴后即可断开形状的链接:-

activeSlide.Shapes.Paste
ppApp.CommandBars.ExecuteMso "PasteSourceFormatting"
For intCount = 1 To 5000: DoEvents: Next
activeSlide.Shapes(activeSlide.Shapes.Count).LinkFormat.BreakLink