VBA-错误1004-方法类的CopyPicture失败
我需要一些代码方面的帮助。我编写了一个宏,它将许多表格作为图片从不同的Excel文件复制到PowerPoint,但有时它工作正常,有时出现错误1004-方法类的CopyPicture失败。这是我的密码:VBA-错误1004-方法类的CopyPicture失败,vba,excel,Vba,Excel,我需要一些代码方面的帮助。我编写了一个宏,它将许多表格作为图片从不同的Excel文件复制到PowerPoint,但有时它工作正常,有时出现错误1004-方法类的CopyPicture失败。这是我的密码: Sheets("List1").Select ' group chart ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1 ' select cells to be copied to PowerPoint: Range("
Sheets("List1").Select
' group chart
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
' select cells to be copied to PowerPoint:
Range("A1:X83").Select
' copy cells:
Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture
' paste to PowerPoint:
pptSld.Shapes.Paste.Select
我发现在范围(“A1:X83”)之前插入工作表(“列表1”)。
对某人很有帮助。选择,但没有帮助。
我在工作中遇到了这个问题,我使用的是Office 2010。在家里,我有Office 2016,代码工作得非常完美
您是否有任何想法,如何使其在没有任何错误的情况下工作?检查您的参考资料,以确保您调用的库是正确的
工具>参考
不确定您需要哪一个,但请确保已选中Microsoft Powerpoint xx.x诸如此类的内容。放弃使用的习惯。选择所有内容;这就是宏录制器代码所做的,但这只是因为宏录制器代码模仿每一个手动操作—在自动化Office时,实际上不需要重现手动执行任务时的每一次鼠标单击—而是使用Office应用程序的对象模型
因此,您可以关闭工作表(“列表1”)
,并将特定的范围
复制为图片:
Application.Worksheets("List1").Range("A1:X83").CopyPicture xlScreen, xlPicture
此代码比依赖于选择的任何代码都更加健壮:您正在从特定的范围
对象调用.CopyPicture
所以剩下要做的就是粘贴:
pptSld.Shapes.Paste
请注意,这样你就不能合法地在上面做。选择——但你为什么要。选择它呢
如果需要访问新创建的Shape
对象,可以从pptSld.Shapes
集合中检索该对象:
Dim excelScreenshot As Shape
Set excelScreenshot = pptSld.Shapes(pptSld.Shapes.Count)
然后,无论您希望如何使用选择
,您现在都可以使用Excel屏幕截图
——作为奖励,您可以通过使用强类型对象引用(而不是对象
)获得IntelliSense和自动完成功能,这使得每个会员都打了一个迟到的电话——换句话说,你会得到更好的表现,不管它是多么的不引人注意。作为一个评论,我觉得更合适,因为它更多的是一个提示,而不是一个可靠的答案。非常感谢你给出这样一个完整的答案。此代码适用于我,但现在我无法在幻灯片上对齐我的形状。我将此代码Dim excelScreenshot用作形状集excelScreenshot=pptSld.Shapes(pptSld.Shapes.Count)excelScreenshot.Left=25 excelScreenshot.Top=100
,我得到的是“错误13-类型不匹配”@Pelmeshka不确定是哪条指令导致了该错误。确定导致问题的指令,使用调试器(断点/F9、单步执行/F8、本地工具窗口等)、对象浏览器/F2和Google&Stack Overflow来确定需要使用的实际类型。。。如果做不到这一点,请使用尽可能少的代码重现问题(请参阅),并提出新问题。