Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA-将图表从Excel粘贴到PowerPoint时保留源格式_Excel_Vba_Charts_Formatting_Powerpoint - Fatal编程技术网

VBA-将图表从Excel粘贴到PowerPoint时保留源格式

VBA-将图表从Excel粘贴到PowerPoint时保留源格式,excel,vba,charts,formatting,powerpoint,Excel,Vba,Charts,Formatting,Powerpoint,我想使用VBA将Excel工作簿中的一些图表复制粘贴到PowerPoint幻灯片中。这部分很简单,但我也希望保留源代码格式(=Excel格式) 1) 我首先使用了这种基本代码: Worksheets("DailyActivityGeneral").ChartObjects("Chart 3").Copy Set chartGen3 = prsntPP.Slides(16).Shapes.Paste 它工作得很好,只是格式没有保留 2) 然后我尝试使用另一种方法: Worksheets("Dai

我想使用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时,如何继续保持源格式


谢谢

这不是一个完美的解决方案,我不认为它很干净,但至少它是有效的:

为了保持我所有图表的源代码格式,我必须定期使用上面文章中提到的第二种方法,而不是像第一次那样在代码开头使用一次。 它的影响似乎只在有限的时间内有效(不知道为什么)——这解释了我所描述的“随机行为”

我本想找到一个更好的方法,但到目前为止,这就是我所有的