【发布时间】:2014-08-19 11:22:00
【问题描述】:
我已经编写了一个 VBA 代码,用于在 Office 2007 中将粘贴图表从 Excel 复制到 ppt,但该代码在 Office 2013 中不起作用。它给出了错误:
“编译错误:未定义用户定义类型”和“需要对象(错误 424)”。
代码:
Sub ExcelToPres()
Dim PPT As Object 'As PowerPoint.Application
Dim PPTFile As PowerPoint.Presentation
Dim PPTShape As PowerPoint.Shape
Dim SlideNum As Integer
Set PPT = CreateObject("PowerPoint.Application")
PPT.Visible = True
PPT.Presentations.Open
Filename:="C:\Users\PS\Desktop\Work\Test - Blank.pptx"
Set PPTFile = PPT.ActivePresentation
PPT.ActiveWindow.ViewType = ppViewSlide
SlideNum = 1
PPTFile.Slides(SlideNum).Select
Sheets("Charts").ChartObjects("Chart 1").CopyPicture
PPTFile.Slides(1).Shapes.Paste.Select
PPT.ActiveWindow.Selection.ShapeRange.Left = 37
PPT.ActiveWindow.Selection.ShapeRange.Top = 127
SlideNum = 1
PPTFile.Slides(SlideNum).Select
Sheets("Charts").ChartObjects("Chart 2").CopyPicture
PPTFile.Slides(1).Shapes.Paste.Select
PPT.ActiveWindow.Selection.ShapeRange.Left = 37
PPT.ActiveWindow.Selection.ShapeRange.Top = 354
SlideNum = 1
PPTFile.Slides(SlideNum).Select
Sheets("Charts").ChartObjects("Chart 3").CopyPicture
PPTFile.Slides(2).Shapes.Paste.Select
PPT.ActiveWindow.Selection.ShapeRange.Left = 37
PPT.ActiveWindow.Selection.ShapeRange.Top = 127
SlideNum = 1
PPTFile.Slides(SlideNum).Select
Sheets("Charts").ChartObjects("Chart 4").CopyPicture
PPTFile.Slides(2).Shapes.Paste.Select
PPT.ActiveWindow.Selection.ShapeRange.Left = 207
PPT.ActiveWindow.Selection.ShapeRange.Top = 127
SlideNum = 1
PPTFile.Slides(SlideNum).Select
ActiveWorkbook.Sheets("Charts").ChartObjects("Chart 5").CopyPicture
PPTFile.Slides(2).Shapes.Paste.Select
PPT.ActiveWindow.Selection.ShapeRange.Left = 442
PPT.ActiveWindow.Selection.ShapeRange.Top = 127
Set PPT = Nothing
Set PPTFile = Nothing
Set PPSlide = Nothing End Sub
【问题讨论】:
-
哪一行报错了? (请调试 F8 直到收到错误)
-
我猜你还没有添加 Microsoft PowerPoint 14.0 对象库的引用...
-
@Captain 谢谢你的回复..我已经激活了 Microsoft PowerPoint 14.0 对象库,现在可以通过 vba 至少打开 powerpoint ..但是我现在得到的错误是在线: PPTFile.Slides(1).Shapes.Paste.Select(#Error:运行时错误 424 - 需要对象)。相同的代码在 2007 年完美运行,请您帮忙解决这个问题...
-
嗨 - 我,至少在您有 SlideNum=1 并选择它的地方出现错误,但随后引用了幻灯片 2 上的形状范围! (第三张图表)。希望这会有所帮助!
-
试试 www.pptxbuilder.com