首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA Office2010 Shapes.PasteSpecial失败

VBA Office2010 Shapes.PasteSpecial失败
EN

Stack Overflow用户
提问于 2013-07-12 18:42:50
回答 1查看 11K关注 0票数 3

在将VBA代码从Office2003迁移到Office2010时,我遇到了一个问题。我要将单元格(Excel)的文本复制到Powerpoint。Office2003生成了一个新的文本框,文本的样式与Excel中的样式相同。现在我的代码使用Office2010失败了,并且我得到了以下消息:

运行时错误-2147188160 (80048240) Shapes.PasteSpecial :无效请求。剪贴板为空或包含可能无法粘贴到此处的数据。

剪贴板绝对不是空的。

代码如下:

代码语言:javascript
复制
Set mySlides = obj_pp.ActivePresentation.Slides
mySlides(Slidenum).Shapes.PasteSpecial DataType:=ppPasteRTF

我已经尝试了其他的DataTypes和粘贴功能。什么都没有用。我从Excel复制的文本在Excel中也被格式化为文本。没有什么特别事情。幻灯片将添加为空幻灯片。添加幻灯片后,将粘贴图片(DataType:=ppPasteEnhancedMetafile)。在此之后,应粘贴文本。

有没有人能帮我弄清楚这段代码?提前谢谢。如果需要更多代码,请让我知道。

编辑:ppt的绑定:

代码语言:javascript
复制
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。这可以很好地工作。

将幻灯片和粘贴范围添加为图片(工作正常):

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-12 20:02:21

在我看来,你需要改变复制你的范围的方法。使用以下代码行代替您的.CopyPicture代码行:

代码语言:javascript
复制
Selection.Copy

它将使用pasting方法:

代码语言:javascript
复制
mySlides(mySlides.Count).Shapes.PasteSpecial DataType:=9

9 = ppPasteRTF在哪里。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17613119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档