仅使用VBA在powerpoint中创建图表,而不使用嵌入的excel数据

仅使用VBA在powerpoint中创建图表,而不使用嵌入的excel数据,vba,powerpoint,Vba,Powerpoint,我正在做一个个人powerpoint项目,我认为在powerpoint中使用activex使幻灯片更具交互性会很酷。我有一些activex框,您可以在其中设置人口和年增长率,最后一步是将我得到的5年预测数据绘制在一个折线图上。我尝试过使用基于excel的VBA,但大多数解决方案似乎需要从工作表中提取数据,因此在powerpoint中无法工作 我还尝试了以下代码来构建图表,跳过了工作表的需要,但由于遇到运行时错误424:Object required error(对象必需错误),因此没有效果: S

我正在做一个个人powerpoint项目,我认为在powerpoint中使用activex使幻灯片更具交互性会很酷。我有一些activex框,您可以在其中设置人口和年增长率,最后一步是将我得到的5年预测数据绘制在一个折线图上。我尝试过使用基于excel的VBA,但大多数解决方案似乎需要从工作表中提取数据,因此在powerpoint中无法工作

我还尝试了以下代码来构建图表,跳过了工作表的需要,但由于遇到运行时错误424:Object required error(对象必需错误),因此没有效果:

Sub AddChart()

    Dim cht     As Chart
    Dim ser     As Series

    Set cht = Charts.Add
    cht.ChartType = xlColumnClustered
    Set ser = cht.SeriesCollection.NewSeries
    ser.XValues = Array(1, 3, 5, 7, 9)
    ser.Values = Array(2.4, 3.2, 5.7, 12.67)

End Sub
有什么解决办法吗?或者我在这里打一匹死马


谢谢

Powerpoint没有
图表。添加
,但或
。添加图表

像这样的事情应该会让你行动起来:

Sub AddChart()
    Dim cht As Chart
    Dim ser As Series

    Set cht = ActivePresentation.Slides(1).Shapes.AddChart(-1, xlColumnClustered).Chart
    Set ser = cht.SeriesCollection.NewSeries

    ser.XValues = Array(1, 3, 5, 7, 9)
    ser.Values = Array(2.4, 3.2, 5.7, 12.67)
End Sub

这个解决方案有效!谢谢,正如你提到的,我使用了错误的运算符。这个解决方案仍然会弹出一个excel,但我希望绕过这个问题,或者至少使用屏幕更新错误的解决方法。你知道如何不依赖excel,只使用powerpoint吗?我不知道powerpoint中有任何图表不依赖excel。也就是说,也许您正在寻找类似这样的东西,即使用ActiveX按钮更改图表外观。