使用Excel宏复制瀑布图时出错

时间:2019-01-15 12:24:45

标签: excel vba graph copy

我有一些简单的VBA代码,可以遍历Excel工作簿中的一系列图形并将它们复制到PowerPoint演示文稿中。它对瀑布图以外的所有图形都适用(错误445:“对象不支持此选项”)。由于它们在Excel中相对较新,因此我认为可能存在兼容性问题,并且想知道是否有解决方法。

谢谢!!

'Bar chart ==> works fine
ActiveWorkbook.Sheets(7).ChartObjects("Graphique 1").Copy
' Waterfall chart ==> Error 445
ActiveWorkbook.Sheets(8).ChartObjects("Graphique 1").Copy

编辑:当我尝试使用Excel的宏记录器记录过程时,它会给我相同的代码行,但是执行代码时,我会遇到相同的错误。

ActiveSheet.ChartObjects("Graphique 1").Activate
Selection.Copy

2 个答案:

答案 0 :(得分:0)

我已经对瀑布图进行了测试,似乎VBA无法复制这种类型的图。

可能的解决方法: 您可以使用.copyPicure复制为图片,也可以使用以下解决方法:

YourchartObject.duplicate.select
selection.cut

然后粘贴到Powerpoint。

答案 1 :(得分:0)

tldr; 我偶然发现了以下内容,该内容适用于所有图表,包括瀑布图和其他新的Excel图表:

ActiveSheet.Shapes("Any Chart").Copy

以下是复制大多数Excel图表的方法:

ActiveSheet.ChartObjects("My Chart").Copy

ActiveSheet.ChartObjects("My Chart").Chart.ChartArea.Copy

但是,以上两种方法均不适用于瀑布图或其他较新的Excel图表。

如果您在复制瀑布图时记录宏,则将获得以下信息:

Sub RecordedMacro1()
'
' Recorded while copying Waterfall chart
'
    ActiveSheet.ChartObjects("Waterfall Chart").Activate
    Selection.Copy
End Sub

这也不适用于瀑布图。

还有许多其他与真实图表相关的经过实践检验的VBA不适用于较新的Excel图表。