复制Excel表格到PowerPoint
问题描述:
我真的为此而努力,我似乎返回运行时错误“13”不能够找到我的代码不工作的原因:复制Excel表格到PowerPoint
Dim i1 As Integer
Dim PPapp As Object, XLapp As Object
Dim slide1 As Slide, slide2 As Slide, slide3 As Slide
Dim PPoutput As Presentation
Dim output_table As ShapeRange
Set PPapp = New PowerPoint.Application
Set XLapp = Excel.Application
Set PPoutput = PPapp.Presentations.Open("Q:\SDPMaler\blank.potx", untitled:=msoTrue, withwindow:=msoTrue)
Set slide1 = ppoutput.Slides.AddSlide(1, ppoutput.SlideMaster.CustomLayouts(13))
XLapp.ActiveWorkbook.Sheets("PPT output").Range("y4:ae11").Copy
Set output_table = slide1.Shapes.PasteSpecial(ppPasteJPG, msoFalse, "", 1, "", msoTrue)
这里我的代码失败:宏创建PowerPoint演示带来了在正确的布局幻灯片,甚至的过去表作为图片
.PasteSpecial(DataType:=ppPasteOLEObject, link:=msoTrue)
的工作方式相同,但无论是我收到“运行时错误‘13’:类型不匹配“粘贴代码的最后一行。即使#13通常是一个简单的错误发现我这次真的卡住了。 希望有人能帮助我 感谢 PS:II正在使用Office 2010和正在运行Excel中
我猜的.PasteSpecial函数不返回一个ShapeRange所以当你尝试分配的结果,宏观
答
我的猜测:
更改此:
昏暗output_table作为ShapeRange
要:
昏暗output_table作为PowerPoint.ShapeRange
假设您已经设定了参考PowerPoint或
暗淡output_table作为对象,如果您使用后期绑定
通过调光它作为ShapeRange在Excel中,您要创建一个变量来保存一个Excel shaperange
,但是当你粘贴到PPT,你会得到一个PowerPoint的形状,这将导致类型不匹配。
答
.PasteSpecial被声明为ShapeRange对象的变量(output_table)会导致类型不匹配。
尝试Dim output_table作为Variant,然后通过查看TypeName(output_table)进行调试 - 如果您甚至需要PasteSpecial的结果。
我刚才看到我忘了谢谢你:非常感谢你修复它。 – seba