0
我在Excel中有一个图表,我的宏在图表区域的右侧填充了10个形状。我只想将图表复制到功能点,并且找不到禁用复制形状的方法。如果我复制图表,它也复制形状。如何禁用复制chartarea中存在的形状?
我在Excel中有一个图表,我的宏在图表区域的右侧填充了10个形状。我只想将图表复制到功能点,并且找不到禁用复制形状的方法。如果我复制图表,它也复制形状。如何禁用复制chartarea中存在的形状?
下面是一个简单的例子,副本从活动片的第一图表,它糊剂到活动呈现的第一滑动,并删除从粘贴的图表任何现有形状...
'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
希望这帮助!
谢谢你的想法。这有帮助。 –
图表对象内部的形状?如果它们在图表对象中,那么它们将被复制到图表中。解决办法是将它们从图表中剪下来并粘贴到图表上(但不是在图表中)。在导出图表时(通过引用对象),这些形状不应与图表一起复制。 –
或者您可以复制/粘贴图表,然后通过循环查看Chart对象的Shapes集合中的每个图形,从粘贴的图表中删除形状。 – Domenic
是的,形状出现在图表对象中。我有这些想法。寻找一种用户友好的方式,而不需要额外的工作给用户。试过$ .controlformat.printobject = false $不工作...在VBA中寻找要限制复制形状的东西..是否有可能... @domenic –