复制和粘贴图表以在VBA中滑动

时间:2019-07-27 14:13:53

标签: excel vba powerpoint

我正在创建VBA代码,以复制Excel Workbook特定工作表的图表并将其粘贴到Power Point幻灯片中。这是我的代码:

我在“ Windows(“ FilenameExcel”)。Activate”上遇到“运行时错误'9'下标超出范围”,但我不知道自己在做什么错。

我该如何解决问题?

Sub copyPastePPT()

Dim MyPPT As Object
Dim xChart As Excel.ChartObject
Set MyPPT = CreateObject("Powerpoint.application")
Set myXLS = CreateObject("Excel.application")

FilenamePPT = OpenFileDialogPPT() 'Function to browse to a Power Point Presentation
FilenameExcel = OpenFileDialogXLS() 'Function to browse to a Excel Workbook

MyPPT.presentations.Open FilenamePPT
Workbooks.Open FilenameExcel


    Windows("FilenameExcel").Activate
    Sheets("Breakdown New").Select

    ActiveSheet.ChartObjects.Select
    ActiveChart.ChartArea.Copy

    'Copy chart to a specific slide

    Windows("FilenamePPT").Activate
    MyPPT.ActiveWindow.View.GotoSlide (3)
    MyPPT.ActivePresentation.Slides(3).Select
    MyPPT.CommandBars.ExecuteMso ("PasteSourceFormatting")
    MyPPT.CommandBars.ReleaseFocus



End Sub

1 个答案:

答案 0 :(得分:1)

Sub copyPastePPT()

Dim MyPPT As Object, wb, pp
Dim xChart As Excel.ChartObject
Set MyPPT = CreateObject("Powerpoint.application")
Set myXLS = CreateObject("Excel.application")

FilenamePPT = OpenFileDialogPPT() 'Function to browse to a Power Point Presentation
FilenameExcel = OpenFileDialogXLS() 'Function to browse to a Excel Workbook

Set pp = MyPPT.presentations.Open(FilenamePPT)
Set wb = Workbooks.Open(FilenameExcel)

pp.Sheets("Breakdown New").ChartObjects(1).Chart.ChartArea.Copy

'Copy chart to a specific slide

pp.Slides(3).Select
MyPPT.CommandBars.ExecuteMso ("PasteSourceFormatting")
MyPPT.CommandBars.ReleaseFocus

End Sub