我需要在多个国家复制 PowerPoint 演示文稿,然后将演示文稿发送给同事并让他们能够编辑图表。
为此,我创建了一个包含所有国家/地区数据的 Excel 文件和一个使用 vlookups 一次提取一个国家/地区数据的数据表。然后,我制作了一个 PowerPoint 演示文稿,其中包含大约 30 个链接到数据表的图表。为了创建国家/地区演示文稿,我保存了 PowerPoint 演示文稿和 Excel 文件的副本(每个国家/地区一份),然后在数据表上更改国家/地区,以便演示文稿更新(使用宏更新文件中的链接后)。
我遇到的问题是,如果我只是将 PowerPoint 文件发送给同事,他们就无法编辑图表。如果我还发送 Excel 文件,他们仍然无法编辑图表,除非更改他们保存文件的位置的链接 - 这不是可行的解决方案。
我已经寻找解决方案但无济于事。
如果有人能提供一种使用宏实现以下解决方案之一的方法,或者建议另一个我没有想到的解决方案,我将不胜感激:
- 将演示文稿中的所有链接图表更改为嵌入图表
- 将 PowerPoint 中的绝对链接更改为相对链接,这样只要 Excel 文件与演示文稿保存在同一文件夹中,就可以编辑图表
谢谢你!!
西蒙
答案1
此代码可能有帮助。但您需要将图表作为链接的 OLE 对象粘贴到 PowerPoint 中。
Option Explicit
Sub HyperLinkSearchReplace()
Dim oSl As Slide
Dim oSh As Shape
Dim sSearchFor As String
Dim sReplaceWith As String
sSearchFor = InputBox("What text should I search for?", "Search for ...")
If sSearchFor = "" Then
Exit Sub
End If
sReplaceWith = InputBox("What text should I replace it with" & vbCrLf _
& sSearchFor & vbCrLf _
& "with?", "Replace with ...")
If sReplaceWith = "" Then
Exit Sub
End If
On Error Resume Next
For Each oSl In ActivePresentation.Slides
For Each oSh In oSl.Shapes
If oSh.Type = msoLinkedOLEObject _
Or oSh.Type = msoMedia Then
oSh.LinkFormat.SourceFullName = _
Replace(oSh.LinkFormat.SourceFullName, _
sSearchFor, sReplaceWith)
End If
Next
Next ' slide
End Sub
答案2
我认为您需要以特定方式将图表从 Excel 复制并粘贴到 Powerpoint。Microsoft 指南第 5 步中的第二个选项表示选择性粘贴,它将包括对整个工作簿的访问。
答案3
如果您从同一目录中的 Excel 文件和 PPT 文件开始,然后链接它们,那么根据接收端的 PPT 版本,如果 PPT 和 XL 文件保持在同一目录中,无论该目录是什么,一切都可能正常工作。其他版本不会以这种方式工作。2010 似乎可以。
除了这一例外,指向 XL 和其他 OLE 内容的链接必须有完整路径;相对路径不起作用。
这是一个不幸的情况,链接和嵌入都有优点和缺点,但您无法选择其中哪一个。