PowerPoint幻灯片放映期间添加图表时出现运行时错误

时间:2015-10-30 13:58:05

标签: vba charts slideshow powerpoint

我在PowerPoint中使用vba将图表添加到幻灯片中。但是,这似乎只有在我处于正常/幻灯片查看/编辑模式时才有效。当我在幻灯片放映期间尝试执行此操作时,我收到运行时错误:对象'Shapes'的方法'AddChart'失败。

问题是我在幻灯片放映期间使用用户输入来过滤我查询的数据类型,然后根据该数据创建新幻灯片。在幻灯片视图/编辑模式下使用独立宏不会有帮助。

以下是我的代码的相关部分......我们非常感谢任何建议。

Set oSlide = GlobalFunctions.AddCustomSlide_MDA("Blank")
oSlide.Shapes(1).TextFrame.TextRange = "Change Summary - Time Frames"

Dim myChart As Chart
Dim gChartData As ChartData
Dim gWorkBook As Excel.Workbook
Dim gWorkSheet As Excel.Worksheet

' Create the chart and set a reference to the chart data.
Set myChart = oSlide.Shapes.AddChart.Chart
Set gChartData = myChart.ChartData

' Set the Workbook and Worksheet references.
Set gWorkBook = gChartData.Workbook
Set gWorkSheet = gWorkBook.Worksheets(1)

' Add the data to the workbook.
gWorkSheet.ListObjects("Table1").Resize eWorkSheet.Range("A1:B13")
gWorkSheet.Range("Table1[[#Headers],[Series 1]]").value = "Changes"
gWorkSheet.Range("A2").value = "Past Date"
gWorkSheet.Range("B2").value = iPrevious
gWorkSheet.Range("A3").value = "This Week"
gWorkSheet.Range("B3").value = iThisWeek
gWorkSheet.Range("A4").value = "Next Week"
gWorkSheet.Range("B4").value = i1Week
gWorkSheet.Range("A5").value = "2 Weeks"
gWorkSheet.Range("B5").value = i2Weeks
gWorkSheet.Range("A6").value = "3 Weeks"
gWorkSheet.Range("B6").value = i3Weeks
gWorkSheet.Range("A7").value = "4 Weeks"
gWorkSheet.Range("B7").value = i4Weeks
gWorkSheet.Range("A8").value = "5 Weeks"
gWorkSheet.Range("B8").value = i5Weeks
gWorkSheet.Range("A9").value = "6 Weeks"
gWorkSheet.Range("B9").value = i6Weeks
gWorkSheet.Range("A10").value = "7 Weeks"
gWorkSheet.Range("B10").value = i7Weeks
gWorkSheet.Range("A11").value = "8 Weeks"
gWorkSheet.Range("B11").value = i8Weeks
gWorkSheet.Range("A12").value = "9+ Weeks"
gWorkSheet.Range("B12").value = i9Weeks
gWorkSheet.Range("A13").value = "No Dates"
gWorkSheet.Range("B13").value = iNoWeeks

' Apply styles to the chart.
With myChart
    .ChartStyle = 4
    .ApplyLayout 4
    .ClearToMatchStyle
End With

' Add the axis title.
With myChart.Axes(xlValue)
    .HasTitle = True
    .AxisTitle.Text = "Units"
End With

'myChart.ApplyDataLabels

' Clean up the references.
Set gWorkSheet = Nothing
gWorkBook.Application.Quit
Set gWorkBook = Nothing
Set gChartData = Nothing
Set myChart = Nothing

谢谢

0 个答案:

没有答案