VBA – 将图表从Excel粘贴到PowerPoint时保持源格式
我想使用VBA将位于Excel工作簿中的一些图表复制粘贴到PowerPoint幻灯片中。 这部分很容易,但我也想保持源格式(= Excel格式)。
1)我第一次使用这种基本的代码:
Worksheets("DailyActivityGeneral").ChartObjects("Chart 3").Copy Set chartGen3 = prsntPP.Slides(16).Shapes.Paste
它工作正常,格式化,这是不保留。
2)然后我尝试使用另一种方法:
Worksheets("DailyActivityGeneral").ChartObjects("Chart 3").Copy prsntPP.Slides(16).Select prsntPP.Application.CommandBars.ExecuteMso ("PasteExcelChartSourceFormatting") prsntPP.Application.CommandBars.ReleaseFocus
这保持源格式,这是伟大的,但我似乎无法写:
set chartGen3 = prsntPP.Application.CommandBars.ExecuteMso ("PasteExcelChartSourceFormatting")
(我得到一个错误消息)问题是,我不知道如何操纵粘贴的图表(这可能与“chartGen3”像第一个方法中一样)。 任何关于如何处理粘贴图表的想法? 这可能会解决我的问题!
3)我注意到,当我在代码的开始处使用第二个方法时,(几乎)所有的复制粘贴操作现在保持源格式,即使它们是用第一种语法编写的。 所以,我发现的最好的解决scheme,既能够处理粘贴的图表,并保持其源格式,首先使用第二种方法,删除幻灯片,因为图表不能被操纵,然后使用第一种方法其他幻灯片。
但是我有一个最后的问题:它保持了源码的格式化,但是由于不明原因,有时它不会(随机行为!)
在将图表从Excel复制到PowerPoint时,如何继续保持源格式?
谢谢 !
这不是一个完美的解决scheme,我不认为它很干净,但至less它的工作原理:
为了保持我所有图表的源格式,我必须经常使用上述文章中提到的第二种方法,而不是像我先做的那样在代码的开始处使用第二种方法。 似乎它的效果只在有限的时间内有效(不知道为什么) – 这就解释了我描述的“随机行为”。
我本来希望find一个更好的方法,但到目前为止,这是我所有的!