如何在PowerPoint中更新Excel嵌入的图表?

8
我有30个图表,是从Excel中复制粘贴到PowerPoint幻灯片上的。每个月,我都需要手动点击这些嵌入式图表并进行编辑来更新它们。
我知道有一种使用“特殊粘贴”的选项,可以通过单击更新链接来自动更新图表中的数据。但是,我的图表需要由某些用户进行编辑。特殊粘贴选项不允许用户编辑图表。因此,我无法使用此特殊粘贴选项。
我认为解决方案在于编写PowerPoint中的VBA代码。请问有没有专家能够编写这个VBA代码,以便在PowerPoint中更新所有图表?我目前正在使用PowerPoint 2007。非常感谢您的帮助。

use www.pptxbuilder.com - Boosted_d16
2个回答

16
如果您需要编辑图表,那么您需要编辑底层的Excel文件或者能够在PowerPoint中进行编辑。
由于您使用的是提供完整Excel支持的PowerPoint2007(与具有数据表的PowerPoint 2003不同),因此我建议:
第一部分:
1. 将Excel文件数据链接到每个图表下面的Excel数据 2. 提供直接使用该数据或使用用户数据覆盖该数据的功能。

Sample

这提供了一种灵活的解决方案,但是Excel中每个图表的底层不能通过PowerPoint菜单更新链接命令自动更新。
第二部分
您可以使用以下代码测试每个幻灯片上的每个形状是否具有图表。如果是,则此代码将更新图表下面的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

感谢您的迅速回复。我已经将这个VBA复制粘贴到PowerPoint中,它能够运行。但是,我会弹出一个菜单,要求更新我的文档文件夹中的文件。我的源即Excel文件位于我的桌面文件夹中。如何删除弹出菜单。非常感谢这个VBA。 - user1199080
1
谢谢。我对VBA代码进行了轻微修改,现在它可以完美更新了。这段代码真是救命稻草。再次感谢。 - user1199080
1
这是一个很好的答案。它也可以打破链接吗? - mooseman
@mooseman 是的,与其使用 UpdateLink,这段代码可以用来断开链接。如果您愿意,请发布一个问题,我会为您更新。感谢您的赞美。 - brettdj
1
你是不是想写 'xlWorkbook' 而不是 'pptWorkbook'(后者从未定义)? - AnyOneElse
显示剩余2条评论

2
这可以很容易地完成,无需任何VBA代码。
  1. 点击“Office按钮”,选择“编辑文件链接”(它位于“运行兼容性检查”下方,你需要向下滚动才能看到最后一个选项):

    Office菜单,“准备”子菜单

  2. 选择所有嵌入的图表(在这里称为“链接”),然后点击“立即更新”:

    "链接"窗口

您可以使用同一窗口来断开链接,以及更改任何给定链接的源文件。


1
如果PPT直接链接到Excel,则可以使用此方法,但如果链接的Excel文件位于图表下方,则无法使用。 - brettdj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接