在将VBA代码从Office2003迁移到Office2010时,我遇到了一个问题。我要将单元格(Excel)的文本复制到Powerpoint。Office2003生成了一个新的文本框,文本的样式与Excel中的样式相同。现在我的代码使用Office2010失败了,并且我得到了以下消息:
运行时错误-2147188160 (80048240) Shapes.PasteSpecial :无效请求。剪贴板为空或包含可能无法粘贴到此处的数据。
剪贴板绝对不是空的。
代码如下:
Set mySlides = obj_pp.ActivePresentation.Slides
mySlides(Slidenum).Shapes.PasteSpecial DataType:=ppPasteRTF我已经尝试了其他的DataTypes和粘贴功能。什么都没有用。我从Excel复制的文本在Excel中也被格式化为文本。没有什么特别事情。幻灯片将添加为空幻灯片。添加幻灯片后,将粘贴图片(DataType:=ppPasteEnhancedMetafile)。在此之后,应粘贴文本。
有没有人能帮我弄清楚这段代码?提前谢谢。如果需要更多代码,请让我知道。
编辑:ppt的绑定:
Dim Datei As String
Pfad_Server = "..."
Pfad_Verzeichnis = "..."
Dateiname = "....pptx"
Datei = Pfad_Server & Pfad_Verzeichnis & "\" & Dateiname
Set obj_pp = (GetObject(, "Powerpoint.Application"))
obj_pp.Visible = True
IsOpen = False在运行宏之前,我总是打开ppt。这可以很好地工作。
将幻灯片和粘贴范围添加为图片(工作正常):
Range(Cells(start_var, 1), Cells(bereich_ende, 13)).Select
Selection.CopyPicture xlScreen, xlPicture
...
Set mySlides = obj_pp.ActivePresentation.Slides
mySlides.Add Index:=mySlides.Count + 1, Layout:=12 'ppLayoutBlank
mySlides(Slidenum).Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile发布于 2013-07-12 20:02:21
在我看来,你需要改变复制你的范围的方法。使用以下代码行代替您的.CopyPicture代码行:
Selection.Copy它将使用pasting方法:
mySlides(mySlides.Count).Shapes.PasteSpecial DataType:=99 = ppPasteRTF在哪里。
https://stackoverflow.com/questions/17613119
复制相似问题