2017-08-29 42 views
0

我在Excel中有一个图表,我的宏在图表区域的右侧填充了10个形状。我只想将图表复制到功能点,并且找不到禁用复制形状的方法。如果我复制图表,它也复制形状。如何禁用复制chartarea中存在的形状?

+0

图表对象内部的形状?如果它们在图表对象中,那么它们将被复制到图表中。解决办法是将它们从图表中剪下来并粘贴到图表上(但不是在图表中)。在导出图表时(通过引用对象),这些形状不应与图表一起复制。 –

+0

或者您可以复制/粘贴图表,然后通过循环查看Chart对象的Shapes集合中的每个图形,从粘贴的图表中删除形状。 – Domenic

+0

是的,形状出现在图表对象中。我有这些想法。寻找一种用户友好的方式,而不需要额外的工作给用户。试过$ .controlformat.printobject = false $不工作...在VBA中寻找要限制复制形状的东西..是否有可能... @domenic –

回答

1

下面是一个简单的例子,副本从活动片的第一图表,它糊剂到活动呈现的第一滑动,并删除从粘贴的图表任何现有形状...

'Declare Excel variables 
Dim ChartObj As ChartObject 

'Declare PowerPoint variables 
Dim ppApp As Object 
Dim ppPres As Object 
Dim ppChartObj As Object 
Dim ppShape As Object 

'Copy first chart from active sheet 
Set ChartObj = ActiveSheet.ChartObjects(1) 
ChartObj.Copy 

'Paste chart into first slide of active presentation 
Set ppApp = GetObject(, "PowerPoint.Application") 
Set ppPres = ppApp.ActivePresentation 
Set ppChartObj = ppPres.slides(1).Shapes.Paste(1) 

'Delete shapes from chart 
For Each ppShape In ppChartObj.Chart.Shapes 
    ppShape.Delete 
Next ppShape 

希望这帮助!

+0

谢谢你的想法。这有帮助。 –