VBA Office2010 Shapes.PasteSpecial 失败

标签 vba excel powerpoint office-2010

我在将 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的绑定(bind):

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

最佳答案

在我看来,您需要更改复制范围的方法。使用此行代替您的 .CopyPicture 行:

Selection.Copy

它将与粘贴方法一起工作:

mySlides(mySlides.Count).Shapes.PasteSpecial DataType:=9

其中 9 = ppPasteRTF

关于VBA Office2010 Shapes.PasteSpecial 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17613119/

相关文章:

excel - 如何在不解析的情况下使用 vba OpenText

python - 如何使 XLRD 读取 XLSX 单元格中的超链接?

excel - 根据最大值查找列标题

vba - 获取图片的大小

apache-poi - 在 POI 模式中找不到 CTBarChart

excel - 从 Excel 调用具有多个参数的存储过程

excel - 您是否应该在 VBA 代码中使用绝对引用

VBA继承,类比super

vba - 文本文件源上的 Excel QueryTable 因 Jet OLEDB 连接字符串而失败

vba - 如何使用 Excel VBA 和用户窗体编辑嵌入在 Excel 中的 PowerPoint 演示文稿