這是我第一次在這裏問一個問題,因爲你們和加爾斯是如此之好,以至於我從來沒有到過現在!在多個PPT幻燈片上定位Excel多個圖表
我有以下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'做它還會複製上PowerPoint中的方法和Excel.Chart'的'事件或只是貼上一個PowerPoint幻燈片的Excel圖表圖表? –