如何在powerpoint中更新excel嵌入式图表?

use*_*080 8 powerpoint powerpoint-vba

我有30张图表是从excel创建的,并粘贴到powerpoint幻灯片上.每个月,我都必须通过手动点击图表和编辑来更新这30个嵌入式图表.

我知道有一个选项可以使用paste special,因此可以通过单击更新链接自动更新图表中的数据.但是,我的图表需要由一些用户编辑.粘贴特殊选项不允许用户编辑图表.因此,我无法使用此粘贴特殊选项.

我认为解决方案在于在powerpoint中编写vba.这里有专家可以编写这个vba代码,以便在powerpoint中更新所有图表吗?我目前正在使用powerpoint 2007.非常感谢您的帮助.

bre*_*tdj 15

如果您需要编辑图表,那么显然您需要编辑基础Excel文件,或者能够在PowerPoint中编辑

当你使用PowerPoint2007提供完整的Excel支持(不像PowerPoint 2003有数据表)我会

第1部分

  1. 将Excel文件数据链接到每个图表下方的Excel数据
  2. 提供直接使用该数据或使用用户数据覆盖该数据的能力

样品

这为您提供了灵活的解决方案,但每个图表下的Excel无法通过PowerPoint菜单更新链接命令自动更新.

第2部分

您可以使用下面的代码测试每张幻灯片上的每个形状是否都有图表.如果是这样,此代码将更新图表下方Excel文件中的第一个Excel链接(此部分可以调整为处理多个链接)

    Sub ChangeChartData()

    Dim pptChart As Chart
    Dim pptChartData As ChartData
    Dim pptWorkbook As Object
    Dim sld As Slide
    Dim shp As Shape

    For Each sld In ActivePresentation.Slides
        For Each shp In sld.Shapes
            If shp.HasChart Then
                Set pptChart = shp.Chart
                Set pptChartData = pptChart.ChartData
                pptChartData.Activate
                Set pptWorkbook = pptChartData.Workbook
                On Error Resume Next
                'update first link
                pptWorkbook.UpdateLink pptWorkbook.LinkSources(1)
                On Error GoTo 0
                pptWorkbook.Close True
            End If
        Next
    Next

    Set pptWorkbook = Nothing
    Set pptChartData = Nothing
    Set pptChart = Nothing

End Sub
Run Code Online (Sandbox Code Playgroud)