我有一些简单的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
答案 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图表。