office2010 ppt中引用excel中的图表,链接地址改变,需要逐个更改源文件,有没有批量修改源文件的办法

office2010 ppt中引用excel中的图表,链接地址改变,需要逐个更改源文件,有没有批量修改源文件的办法,第1张

批量 *** 作的话需要使用VBA程序。

可以参考这篇文章:http://www.pptfaq.com/FAQ00759_Search_-_Replace_to_change_OLE_link_paths.htm

我稍微完善了一下他的程序。他的程序原来只能更改插入的OLE对象,对于图表(Charts)的路径是不能更改的,而且每次使用都需要到VBA里去改代码。我这个不需要改代码了,只需要按Atl+F8,直接运行就行了。

Sub ChangeOLELinks()

' Note: this will only work in PPT 2000 and later

    Dim oSld As Slide

    Dim oSh As Shape

    Dim sOldPath As String

    Dim TpOldPath As String    'Temp Old Path, used to get file name without path

    Dim sNewPath As String

    Dim i As Integer, j As Integer

    

    'Get the old path of OLE objects

    For Each oSh In ActivePresentation.Slides(1).Shapes

        If oSh.Type = msoLinkedOLEObject Or oSh.Type = msoChart Then

            TpOldPath = oSh.LinkFormat.SourceFullName

            If TpOldPath <> "" Then Exit For

        End If

    Next

If TpOldPath = "" Then

        MsgBox ("Cannot find Linked OLE Object or Chart Object. Procedure terminated.")

        Exit Sub

    End If

    'Remove the FileName in the Path if the file is stored in LOCAL and uses back slash "\"

    For i = 1 To Len(TpOldPath)

        If InStr(i, TpOldPath, "\") > 0 Then

            i = InStr(i, TpOldPath, "\")

            j = i

        End If

    Next i

    

    If j > 0 Then

        TpOldPath = Left(TpOldPath, j - 1)

    Else

    'Remove the FileName in the Path if the file is stored in SERVER and uses forward slash "/"

        For i = 1 To Len(TpOldPath)

            If InStr(i, TpOldPath, "/") > 0 Then

                i = InStr(i, TpOldPath, "/")

                j = i

            End If

        Next i

        TpOldPath = Left(TpOldPath, j - 1)

    End If

   

    sOldPath = InputBox(prompt:="Please enter the OLD OLE Link Path", Default:=TpOldPath)

    sNewPath = InputBox("Please enter the NEW OLE Link Path", Default:=ActivePresentation.Path)

    On Error GoTo ErrorHandler

    For Each oSld In ActivePresentation.Slides

        For Each oSh In oSld.Shapes

            ' Change only linked OLE objects

            If oSh.Type = msoLinkedOLEObject Or oSh.Type = msoChart Then

                On Error Resume Next

                ' Verify that file exists

                If Len(Dir$(Replace(oSh.LinkFormat.SourceFullName, sOldPath, sNewPath))) > 0 Then

                     oSh.LinkFormat.SourceFullName = Replace(oSh.LinkFormat.SourceFullName, sOldPath, sNewPath)

                     

                Else

                      MsgBox ("File is missing cannot relink to a file that isn't present")

                End If

                On Error GoTo ErrorHandler

             End If

        Next    ' shape

    Next    ' slide

    

MsgBox ("Done!")

NormalExit:

    Exit Sub

ErrorHandler:

    MsgBox ("Error " & Err.Number & vbCrLf & Err.Description)

    Resume NormalExit

End Sub

ppt改链接源文件同一个文件为什么要选这么多遍

ppt文件中的图片和文字链接是指向源文件的,如果只选择一次,当源文件发生变化时,ppt中的链接不会更新,从而导致ppt文件中的图片和文字链接不正确。为了保证ppt文件中的图片和文字链接能够正确指向源文件,所以需要多遍选择源文件。

转换一般有下面三种方法(只转换文字不能转换图片):

1、从网上下载pptconvert

to

doc(ppt转换word软件),下载后不需安装直接运行。把ppt文件拖入程序,按程序界面中的“开始”按钮即可。不过转换后需自己进行排版。另外,ppt有的版本自身有转换功能(文件——发送——microsoft

word)。

2、在大纲中复制——粘贴。打开ppt在普通视图下,幻灯片/大纲窗格——单击“大纲”——ctrl+a全选——右击大纲页面——复制,回到word中右击——粘贴即可。(这种方法有个限制,只适用由幻灯片母版在占位符中输入的内容)。

3、页数少的话可以直接“复制——粘贴”。方法:ppt中拉黑选中某个文本框的文字,按ctrl键分别拉黑选中一页中所有的文本框中的文字,右击——复制,打开word,右击——粘贴——粘贴的文字右下方有个图标“粘贴选项”,根据需要选择“保留源格式、匹配目标格式、仅保留文本”。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8073037.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存