2015-05-09 2 views
0

У меня есть код vba для обновления ссылок в powerpoint. Для некоторых ссылок он отлично работает, и для некоторых он просто не хочет обновляться.
я заметил, что ссылки обновление, если это рабочий лист Excel, но если ссылка является диаграмма в первенствовать она не хочет обновить:VBA для обновления Powerpoint Links

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 

Помощь будет весьма признателен.

ответ

0

Попробуйте расширить ваши Если запрос как

If pptShape.Type = msoLinkedOLEObject Or 
    pptShape.Type = msoLinkedPicture Or pptShape.Type = msoChart Then 
+0

Нет, это не решает проблему, я даже пробовал различные типы из этой ссылке: https://msdn.microsoft.com/en-us/library/ microsoft.office.interop.powerpoint.shape.type% 28v = office.14% 29.aspx? cs-save-lang = 1 & cs-lang = vb # code-snippet-1 – Wilest

+1

Покажите нам несколько примеров того, что выглядит .SourceFullname как для ссылок, которые работают и не работают. –

Смежные вопросы