【发布时间】:2016-10-31 17:08:31
【问题描述】:
我可以通过转到文件 -> 链接 -> 自动更新来做到这一点。
但是,这会导致其他人的计算机崩溃。这可能是兼容性问题,因为我使用的是 PowerPoint 2016。
我有 30 多个图表要更新。
我尝试了以下 VBA,但最终从 Excel 弹出一个提示:
Microsoft Excel 正在等待另一个应用程序完成 OLE 操作。
这持续了 15 分钟。
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
【问题讨论】:
-
Excel 的弹出窗口/警报具体说了什么?可以加截图吗?如果去掉
On Error Resume Next语句会发生什么? -
文件 -> 链接 -> 自动更新 -- 通常这不应该本身崩溃,但如果用户从网络断开连接以访问链接文件,这可能是个问题。在慢速网络连接上,这可能会出现挂起/无响应的外观,但您通常只需要等待让它获取这些文件。这些是 OLE/嵌入式图表数据通常难以使用且不可靠的原因。
-
不幸的是我在家工作,所以我不能给出一个准确的截图。但是,错误消息显示“Microsoft Excel 正在等待另一个应用程序完成 OLE 操作”
-
@DavidZemens 用户可以访问包含链接文件的网络。用户说他们等了 10 到 15 分钟才杀死 powerpoint。不幸的是,我们从包含高频数据的电子表格中获取图表并将其放入 .ppt 文件中,这样每次无需手动重新创建 ppt 就可以更轻松地更新 ppt。
-
我已经看到了提示/警告,然后让我试着记住它的含义......
标签: excel vba powerpoint