我想使用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)我注意到当我在代码开头使用第二种方法时,(几乎)所有复制粘贴操作现在都保持源格式化,即使它们是用第一种语法编写的。因此,我发现,能够处理粘贴的图表并保持其源格式的最佳解决方案是首先使用第二种方法,删除幻灯片,因为图表无法操作,然后使用第一种方法其他幻灯片。
但我有一个最后一个问题:它保持源格式符合预期,但由于未知原因,有时,它没有(随机行为!)
将图表从Excel复制到PowerPoint时,如何继续保持源格式?
谢谢!
答案 0 :(得分:0)
这不是一个完美的解决方案,我认为它不是很干净,但至少它有效:
为了保持所有图表的源格式,我必须经常使用上面帖子中提到的第二种方法,而不是像我先做的那样在代码的开头使用。 似乎它的效果仅在有限的时间内保持有效(不知道为什么) - 这解释了"随机行为"我描述了。
我本来希望找到一个更好的方法,但到目前为止我只有这个!