将我的 VBA 代码从 Office2003 迁移到 Office2010 时遇到问题。我想将单元格 (Excel) 的文本复制到 Powerpoint。Office2003生成了一个新的文本框,文本的样式和Excel中的一样。现在我的代码在 Office2010 上失败,我收到以下消息:
运行时错误 -2147188160 (80048240) Shapes.PasteSpecial:无效请求。剪贴板为空或包含可能无法粘贴到此处的数据。
剪贴板绝对不是空的。
代码如下:
Set mySlides = obj_pp.ActivePresentation.Slides
mySlides(Slidenum).Shapes.PasteSpecial DataType:=ppPasteRTF
我已经尝试过其他数据类型和粘贴功能。没有任何帮助。我从 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