2016-04-12 7 views
0
  1. Ich habe große Präsentation (~ 300 Folien) Und ich muss einige Versionen davon machen, jeder mit verschiedenen Excel-Datei verbunden. Ich habe Code, der Links für alle Formen in Prestations ändert. Es ist alles gut für Diagramme, aber es gibt ein Problem mit verknüpften Tabellen. Die Quellenänderung ist korrekt, aber während dieses Änderungsbereichs für die Tabelle dissapires (der Bereich ist für die erste Blattzelle A1 festgelegt). Gibt es eine Möglichkeit, den Bereich unverändert zu lassen?
  2. Zusätzliche Frage: chartquellwechsel ist sehr schnell (< 1s), während Ändern verknüpfte Tabelle Quelle dauert einige Zeit (~ 15s). Dies wird zu einem Problem, wenn viele Tabellen vorhanden sind. Wenn ich Code einige Male ~ 50 Dias in einem Durchlauf laufen ließ, ging es gut (nahm ~ 5-10min), aber als ich versuchte, es auf allen ~ 300 Dias zu laufen, wartete ich auf 30min und es beendete nicht (dort war kein Gedränge es sah aus wie Prozedur eingefroren). Ich bin wirklich neugierig, warum dieses Problem auftritt.

belowe Code i für Link Änderung verwenden:Power-Point-Tabellen, die mit Excel verknüpft sind - Wie wird die Quelle (VBA) geändert?

Sub UpdateLinks() 
Dim ExcelFile 
Dim exl As Object 
Set exl = CreateObject("Excel.Application") 

'Open a dialog box to promt for the new source file. 
ExcelFile = exl.Application.GetOpenFilename(, , "Select Excel File") 

Dim i As Integer 
Dim k As Integer 

'Go through every slide 
For i = 1 To ActivePresentation.Slides.Count 
    With ActivePresentation.Slides(i) 
     'Go through every shape on every slide 
     For k = 1 To .Shapes.Count 
      'Turn of error checking s that it doesn 't crash if the current shape doesn't already have a link 
      On Error Resume Next 
      'Set the source to be the same as teh file chosen in the opening dialog box 
      .Shapes(k).LinkFormat.SourceFullName = ExcelFile 
      If .Shapes(k).LinkFormat.SourceFullName = ExcelFile Then 
       'If the change was successful then also set it to update automatically 
       .Shapes(k).LinkFormat.AutoUpdate = ppUpdateOptionAutomatic 'other option is ppUpdateOptionManual/ppUpdateOptionAutomatic 
      End If 
      On Error GoTo 0 
     Next k 
    End With 
Next i 
End Sub 

Alle Tipps sind willkommen! :)

Antwort

0

Haben Sie sich angesehen, was .SourceFullName zurückgibt? Normalerweise ist es nicht nur der Dateiname, sondern auch weiterer Code, der angibt, auf welchem ​​Blatt und in welchem ​​Bereich das Blatt liegt, auf das der Link zeigt. Es sieht so aus, als ob Sie das nur in den Namen der Ersatz-Excel-Datei ändern.

Verwenden Sie stattdessen Ersetzen, um den Namen der neuen Excel-Datei für den Namen der alten Excel-Datei in .SourceFullName zu ersetzen. Das lässt den Rest des Linktextes intakt.

+0

Ich dachte darüber nach und ich versuchte, dies mit Textfunktionen zu tun. Arbeitte immer noch nicht, aber ich konnte einen dummen Fehler im Code machen. Ersetzen ist offensichtlich einfacher. Ich werde es versuchen. Danke für Hilfe! – Cudny

+0

Falls es hilft, habe ich Code auf meiner PPTFAQ-Site, der etwas Ähnliches tut: Batch-Suche und Ersetzen für Hyperlinks, OLE-Links, Film-Links und Sound-Links http://www.pptfaq.com/FAQ00773_Batch_Such_und_Replace_for_Hyperlinks_OLE_links -_movie_links_und_sound_links.html –

Verwandte Themen