【发布时间】:2014-03-07 04:21:14
【问题描述】:
这是我第一次在这里问问题,因为你们这些家伙和女孩都很好,我以前从来没有这样做过!
我有以下 VBA 代码,它成功地从电子表格中提取图表,并将它们粘贴到两张新创建的 PPT 幻灯片上。然而,唯一的问题是此代码仅对齐第二张幻灯片上的图表,而不影响第一张幻灯片上的图表。 我终其一生都无法弄清楚她的情况,非常感谢任何意见!
Option Explicit
Sub MakeSlides()
Dim myData As Excel.Range
Dim sheet2 As Excel.Worksheet
Dim objPPT As Object
Set sheet2 = ActiveWorkbook.Sheets("Sheet2")
Set myData = sheet2.Range("A2:B43")
Set objPPT = CreateObject("Powerpoint.application")
myData.Copy
Dim pptApp As New PowerPoint.Application
pptApp.Visible = True
Dim pres As PowerPoint.Presentation
Set pres = pptApp.Presentations.Add
Dim firstslide As PowerPoint.Slide
Set firstslide = pres.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutBlank)
Dim myChart As Excel.ChartObject
Set myChart = Sheet1.ChartObjects(1)
myChart.Copy
firstslide.Shapes.Paste.Select
' Align pasted chart
pptApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
pptApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
Set sheet2 = ActiveWorkbook.Sheets("Sheet2")
Set myData = sheet2.Range("A45:B69")
myData.Copy
pptApp.Visible = True
Dim secondslide As PowerPoint.Slide
Set secondslide = pres.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutBlank)
Set myChart = Sheet1.ChartObjects(2)
myChart.Copy
secondslide.Shapes.Paste
' Align pasted chart
pptApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
pptApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
结束子
【问题讨论】:
-
我知道它有点晚了,但我只是想知道当您使用
PasteSpecial将 Excel 图表粘贴到 PowerPoint 幻灯片上时,它是否还会在 PowerPoint 上复制Excel.Chart的方法和事件,或者只是图表?
标签: excel vba powerpoint