将图表复制到powerpoint,同时保持源格式
我有一个包含饼图的Excel工作表,我想将它复制到PowerPoint幻灯片(幻灯片编号10)。
我也想保持源格式 , 如果我在饼图中进行任何格式更改 , 它也应该在幻灯片中修改 。
有没有任何vba编码? 遇到这个代码,但它似乎并没有为我工作。
'copy the chart from Excel xlSheet.ChartObjects(ChartName).Select xlSheet.ChartObjects(ChartName).Copy 'Select Slide Set mySlide = myPresentation.Slides(Charts(r).SlideName) mySlide.Select 'stall to make sure the slide is selected For k = 1 To 1000 DoEvents Next k 'paste on selected slide PPApp.CommandBars.ExecuteMso ("PasteSourceFormatting") PPApp.CommandBars.ReleaseFocus 'sit and wait for changes to be made For k = 1 To 5000 DoEvents Next k
我通常使用这样的PasteSpecial
方法:
xlSheet.Charts(ChartName).ChartArea.Copy Set mySlide = myPresentation.Slides(Charts(r).SlideName) 'Use paste special method mySlide.Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile, Link:=msoTrue mySlide.Shapes.Title.TextFrame.TextRange.Text = "Chart Title" 'Free the Object variable Set mySlide = Nothing
您也可以使用2010年以后的CommandBars方法,但它意味着在视图中有PowerPoint窗口并处于活动状态:
With ActivePresentation .Windows(1).Activate .Windows(1).View.GotoSlide (1) .Application.CommandBars.ExecuteMso ("PasteSourceFormatting") ' From 2010 only .Application.CommandBars.ReleaseFocus End With