Vba 将Excel表格复制到PowerPoint(2010)的最佳方法?
我正在尝试将一系列Excel表格导入PowerPoint,并在Office 2013中成功地为此创建了一个宏,但我正在尝试使其适应Office 2010 问题是,将表格粘贴到PowerPoint时,Office 2010似乎需要一个唯一/不同的代码 最初我有:Vba 将Excel表格复制到PowerPoint(2010)的最佳方法?,vba,excel,powerpoint,Vba,Excel,Powerpoint,我正在尝试将一系列Excel表格导入PowerPoint,并在Office 2013中成功地为此创建了一个宏,但我正在尝试使其适应Office 2010 问题是,将表格粘贴到PowerPoint时,Office 2010似乎需要一个唯一/不同的代码 最初我有: 'Copying Tables to PowerPoint Set PPApp = GetObject(, "Powerpoint.Application") Set PPPres = PPApp.ActivePresentation P
'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版本的修复程序。因此我:
'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
问题是使用数据类型:=10将图表以不正确的格式放入PowerPoint,以供我参考。我需要使用ppPasteHTML将表格作为表格输入PowerPoint,但是,当我尝试将其输入PasteSpecial函数时,我会收到一个错误代码,表示剪贴板为空
是否有人知道“ppPasteHTML”在PasteSpecial中的数据类型选项是否有一个数字等效项?或者是否有另一种方法将Excel表格作为Office 2010表格输入PowerPoint
谢谢!这应该可以做到:
只需确保您正在Excel中加载PowerPoint库
工具->参考->Microsoft PowerPoint nn.n对象库
我还假设表3
,图表开始
,图表结束
&第2行
具有设置值
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
,或在模块/例程中执行调试.Print ppPasteHtml
,自行查询此项
使用早期绑定,请尝试:
pptSlide.Shapes.PasteSpecialy DataType:=ppPasteHtml
或者,使用后期绑定:
pptSlide.Shapes.PasteSpecial DataType:=8
或者,我也看到了一些(例如,从Excel到PowerPoint等)在这些情况下,似乎有时唯一的解决方法是使用CommandBars
对象,但是我不确定CommandBars中是否有“HTML”粘贴方法
pptSlide.Parent.ExecuteMso "PasteExcelTableSourceFormatting"
下面是一些其他可能的MSO命令,您可以使用,但正如我所说,我没有看到一个显示为粘贴HTML的命令,尽管此列表适用于Office 2010:
可能重复的问题您真的不应该在一天内问同一个问题两次……我关闭了另一个问题,因为它没有任何答案。您可以继续这个问题