我正在创建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
答案 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