【问题标题】:Copy paste excel to ppt, data on wrong slide复制粘贴excel到ppt,数据在错误的幻灯片上
【发布时间】:2018-02-17 06:20:24
【问题描述】:

我有以下代码。它从excel中获取数据并将其粘贴到PPT模板中。 如您所见,我使用ppSlide 来跟踪我当前在哪张幻灯片上。为此,我在完成之前的幻灯片时设置下一张幻灯片的编号。

但是,当我运行代码时,它会将第二个文件粘贴到第二张幻灯片上(应该是第三张幻灯片)。关于为什么的任何想法?

Sub maakPPT()

Application.ScreenUpdating = False

    Dim ppApp As PowerPoint.Application
    Dim ppPres As PowerPoint.Presentation
    Dim ppSlide As PowerPoint.Slide
    Dim wsReoOverzicht As Worksheet
    Dim chPlanning As Chart
    Dim grafPersImp As Range
    Dim wsGrafiek  As Worksheet

    Set wsReoOverzicht = Worksheets("Reo's gestart")
    Set chPlanning = Charts("Planning")
    Set wsGrafiek = Worksheets("Grafiek")
    Set grafPersImp = wsGrafiek.Range("A3:N24")

    'ppt openen
    Set ppApp = New PowerPoint.Application
    ppApp.Visible = True
    ppApp.Activate

    'template openen 2e slide selecteren
    Set ppPres = ppApp.Presentations.Open("F:\WGD\Dep 456566-Centrale Reorganisatieteam\AAB CRT Algemeen\PMO CRT\Dashboards\ppt presentaties\Template Totaaloverzicht.pptx")
    Set ppSlide = ppPres.Slides(2)

    'Totaal lopende Reo's (planning)
    wsReoOverzicht.ListObjects("Tabel1").Range.AutoFilter Field:=12, Criteria1:= _
    "Lopend"
    chPlanning.CopyPicture _
    Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture

    ppSlide.Select
    ppApp.ActiveWindow.View.Paste
    ppApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
    ppApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
    ppSlide.Shapes(2).Width = 600
    ppSlide.Shapes(2).Height = 375
    ppSlide.Shapes.Range(2).Align msoAlignCenters, True
    ppSlide.Shapes.Range(2).Align msoAlignMiddles, True
    Set ppSlide = ppApp.ActivePresentation.Slides(3)

   'Totaal personele impact (grafiek)
   grafPersImp.Copy
   ppApp.ActiveWindow.View.PasteSpecial DataType:=2  '2 = ppPasteEnhancedMetafile
   ppApp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
   ppApp.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
   ppSlide.Shapes(2).Width = 400
   ppSlide.Shapes(2).Height = 275
   ppSlide.Shapes.Range(2).Align msoAlignCenters, True
   ppSlide.Shapes.Range(2).Align msoAlignMiddles, True
   Set ppSlide = ppApp.ActivePresentation.Slides(4)

【问题讨论】:

  • Set 2nd 的滑动方式与您Set 3rd 的方式有何不同?
  • 不,我刚才看到了,进了Set ppSlide = ppApp.ActivePresentation.Slides(2)

标签: vba excel powerpoint copy-paste


【解决方案1】:

与第一个绘画步骤的不同之处在于我没有使用ppSlide.select 使其成为活动表。

【讨论】:

    猜你喜欢
    • 2017-11-06
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    • 2023-02-10
    • 2014-10-15
    • 2011-02-27
    相关资源
    最近更新 更多