我有30张图表是从excel创建的,并粘贴到powerpoint幻灯片上。每个月,我都必须通过手动点击图表和编辑来更新这30个嵌入式图表。
我知道有一个选项可以使用paste special,因此可以通过单击更新链接自动更新图表中的数据。但是,我的图表需要由一些用户编辑。粘贴特殊选项不允许用户编辑图表。因此,我无法使用此粘贴特殊选项。
我认为解决方案在于在powerpoint中编写vba。这里有专家可以编写这个vba代码,以便在powerpoint中更新所有图表吗?我目前正在使用powerpoint 2007.非常感谢您的帮助。
答案 0 :(得分:14)
如果您需要编辑图表,那么显然您需要编辑基础Excel文件,或者能够在PowerPoint中编辑
当您使用PowerPoint2007时,它提供完整的Excel支持(与拥有数据表的PowerPoint 2003不同)我会
第1部分
这为您提供了灵活的解决方案,但每个图表下的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
答案 1 :(得分:2)
这很容易实现,不需要任何VBA代码。
单击“Office按钮”,选择“编辑文件链接”(它位于“运行兼容性检查”下方,您必须向下滚动才能看到最后一个选项):
选择所有嵌入式图表(此处称为“链接”),点击“立即更新”:
您可以使用同一窗口来断开链接,也可以更改任何给定链接的源文件。