将Excel表格复制到PowerPoint中的最佳方法(2010)?

我正在尝试将一系列Excel表格导入到PowerPoint中,并在Office 2013中为此成功创build了一个macros,但我试图将其应用于Office 2010。

问题是将表格粘贴到PowerPoint时,Office 2010似乎需要唯一/不同的代码。

本来我有:

'Copying Tables to PowerPoint Set PPApp = GetObject(, "Powerpoint.Application") Set PPPres = PPApp.ActivePresentation PPApp.ActiveWindow.ViewType = ppViewSlide For i = 0 To Table3 Sheets("Charts").Range(ChartStart, ChartEnd).Offset(i * Row2, 0).Copy Set PPSlide = PPPres.Slides(1) Set PPShape = PPSlide.Shapes.Paste PPShape.Name = "Table" & i 

但自从被告知2010版本的修补程序是使用.PasteSpecial所以我有:

 'Copying Tables to PowerPoint Set PPApp = GetObject(, "Powerpoint.Application") Set PPPres = PPApp.ActivePresentation PPApp.ActiveWindow.ViewType = ppViewSlide For i = 0 To Table3 Sheets("Charts").Range(ChartStart, ChartEnd).Offset(i * Row2, 0).Copy Set PPSlide = PPPres.Slides(1) Set PPShape = PPSlide.Shapes.PasteSpecial(dataType:=10) PPShape.Name = "Table" & i 

事情是使用DataType:= 10为我的目的把图表放入PowerPoint格式不正确。 我需要使用ppPasteHTML将表格作为表格使用ppPasteHTML,但是,当我尝试将其input到PasteSpecial函数时,我得到一个错误代码,指出剪贴板是空的。

有谁知道如果“ppPasteHTML”具有PasteSpecial中的DataType选项的数字等值?或者另一种方法将Excel表格作为Office 2010的表格获取到PowerPoint中?

谢谢!

这应该做到这一点:

只要确保您正在Excel中加载PowerPoint库。

工具 – >参考 – >“Microsoft PowerPoint nn.n对象库”

另外我假设ChartEndChartStartChartEndChartEnd有设定值

 Dim pptApp As PowerPoint.Application Dim pptPres As PowerPoint.Presentation Dim pptSlide As PowerPoint.Slide 'Open PowerPoint and create a new presentation. Set pptApp = New PowerPoint.Application Set pptPres = pptApp.Presentations.Add Set pptSlide = pptPres.Slides.Add(1, ppLayoutBlank) For i = 0 To Table3 Set objRange = Worksheets("Charts").Range(ChartStart, ChartEnd).Offset(i * Row2, 0) objRange.Copy pptSlide.Shapes.PasteSpecial DataType:=ppPasteHTML, Link:=msoFalse Next i For j = 1 To pptSlide.Shapes.Count With pptSlide.Shapes(j) .Name = "Table" & j End With Next j Set pptSlide = Nothing Set pptPres = Nothing Set pptApp = Nothing 

ppPasteHtml的长/数字等同于8 。 您可以通过在PowerPoint中打开VBE,在立即窗口中执行?ppPasteHTML ,或者在模块/例程中执行Debug.Print ppPasteHtml来查询。

使用早期绑定,请尝试:

 pptSlide.Shapes.PasteSpecialy DataType:=ppPasteHtml 

或者,使用后期绑定:

 pptSlide.Shapes.PasteSpecial DataType:=8 

另外,我还看到了其他一些问题,从一个应用程序粘贴到另一个应用程序 (例如,从Excel到PowerPoint等),在这种情况下,似乎有时唯一的解决方法是使用CommandBars对象,但是我不确定是否有从CommandBars的“HTML”粘贴方法。

 pptSlide.Parent.ExecuteMso "PasteExcelTableSourceFormatting" 

以下是可以使用的一些其他可能的MSO命令,但正如我所说的,虽然此列表适用于Office 2010,但看不到一个可以粘贴HTML的命令:

在这里输入图像说明