将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对象库”
另外我假设ChartEnd
, ChartStart
, ChartEnd
& ChartEnd
有设定值
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的命令: