VBA 用于更新 Powerpoint 链接
VBA for updating Powerpoint Links
我有一些 vba 代码可以在 powerpoint 中更新 links。对于一些 links 它完美地工作,而对于一些它只是不想更新。
我确实注意到,如果 links 是 excel 工作表,它会更新,但如果 link 是 excel 中的图表,它不想更新:
Sub ul()
Dim pptSlide As Slide
Dim pptShape As Shape
Dim oldString As String
oldString = "C:\Users\username\Downloads\dir\Mar Apr 2014\"
Dim newString As String
newString = "C:\Users\newusername\Downloads\dir\Jan Feb 2015\"
For Each pptSlide In ActivePresentation.Slides
For Each pptShape In pptSlide.Shapes
If pptShape.Type = msoLinkedOLEObject Or pptShape.Type = msoLinkedPicture Then
With pptShape.LinkFormat
If InStr(1, UCase(.SourceFullName), UCase(oldString)) Then
.SourceFullName = Replace(.SourceFullName, oldString, newString)
End If
End With
End If
DoEvents
Next pptShape
DoEvents
Next pptSlide
End Sub
将不胜感激。
尝试将您的 If 查询扩展为
If pptShape.Type = msoLinkedOLEObject Or
pptShape.Type = msoLinkedPicture Or pptShape.Type = msoChart Then
我有一些 vba 代码可以在 powerpoint 中更新 links。对于一些 links 它完美地工作,而对于一些它只是不想更新。
我确实注意到,如果 links 是 excel 工作表,它会更新,但如果 link 是 excel 中的图表,它不想更新:
Sub ul()
Dim pptSlide As Slide
Dim pptShape As Shape
Dim oldString As String
oldString = "C:\Users\username\Downloads\dir\Mar Apr 2014\"
Dim newString As String
newString = "C:\Users\newusername\Downloads\dir\Jan Feb 2015\"
For Each pptSlide In ActivePresentation.Slides
For Each pptShape In pptSlide.Shapes
If pptShape.Type = msoLinkedOLEObject Or pptShape.Type = msoLinkedPicture Then
With pptShape.LinkFormat
If InStr(1, UCase(.SourceFullName), UCase(oldString)) Then
.SourceFullName = Replace(.SourceFullName, oldString, newString)
End If
End With
End If
DoEvents
Next pptShape
DoEvents
Next pptSlide
End Sub
将不胜感激。
尝试将您的 If 查询扩展为
If pptShape.Type = msoLinkedOLEObject Or
pptShape.Type = msoLinkedPicture Or pptShape.Type = msoChart Then