2016-07-28 19 views
0

Ich habe eine PowerPoint-Präsentation, die mehrere Diagramme und verknüpfte Worksheet Ojects alle aus Excel und aus mehreren Dateien hat. Ich verwende den folgenden Code, um alle Diagramme/Objekte in der Präsentation zu aktualisieren, da sie sich täglich ändern. Der Code funktioniert für den Job; Nach der Ausführung verbleiben jedoch mehrere "offene" Excel-Dateien, die nicht sichtbar sind. Der einzige Weg, den ich weiß, dass sie offen sind, ist, wenn ich als separate Excel-Datei öffne und sie schließe, werde ich dann gefragt, ob ich alle anderen Dateien speichern möchte, die zum Aktualisieren meiner PowerPoint-Datei verwendet wurden. Wie stelle ich sicher, dass alle Dateien, die zum Aktualisieren der Präsentation verwendet werden, geschlossen sind (ohne zu speichern)? Ich weiß, wie man jedes Dokument einzeln im Code schließt, indem man den Dateipfad einfügt, aber wenn möglich, würde ich mir einen Weg wünschen, der auch für neue Diagramme/Objekte funktioniert, so dass der Code nicht aktualisiert werden muss.Schließen Sie die Datei nach LinkFormat.Update

Sub updatelinks() 
Dim sld As Slide, shp As Shape 

For Each sld In ActivePresentation.Slides 
    For Each shp In sld.Shapes 
     On Error Resume Next 
     shp.LinkFormat.Update 
    Next 
Next 
MsgBox "All Charts Updated" 
End Sub 

Vielen Dank im Voraus für Ihre Hilfe, und übrigens, ich bin neu in diesem so offen für alle Vorschläge, die meinen ursprünglichen Code besser machen würde. Außerdem verwende ich Office 365, wenn das wichtig ist.

Danke, Chris

Antwort

0

Sie sagen, Sie wissen, wie Excel-Dateien mit dem Dateipfad zu schließen, so langweilt Ich werde nicht mit den Details, aber Sie können mit shp.LinkFormat.SourceFullName den Dateipfad der Excel-Datei zur Aktualisierung erhalten , sodass Sie diese in Ihrer Schleife verwenden können, um sie nach jedem Update zu schließen.