Die Verwendung von VBA zum ändern der Quelle links im Bogen anstelle der Arbeitsmappe

Momentan bin ich zu schreiben versucht einige VBA in ein userform, dass mir erlaubt zu ändern, dass alle externen links in Tabelle1 zu workbookA, dann werden alle externen links in Tabelle2 zu workbookB, dann alle in Tabelle3 zu workbookC etc. etc.

Ich habe diesen code, der alle Verknüpfungen in der Arbeitsmappe

Private Sub btnUpdate_Click()

Dim Source As String

Application.ScreenUpdating = False
currentsource = ActiveWorkbook.LinkSources(xlExcelLinks)

    'This is just a record of the changing source files
     Sheets("Notes").Range("C2") = currentsource

    'txtDirectory is the new source location chosen in my userform 
     Sheets("Notes").Range("C3") = txtDirectory

Source = Sheets("Notes").Range("C2")

ActiveWorkbook.ChangeLink Name:=Source, NewName:=txtDirectory, Type:=xlExcelLinks

Application.ScreenUpdating = True

End Sub

Dieser funktioniert perfekt, jedoch habe ich jetzt anpassen müssen, um es zu ändern der links, je nach Blatt, die ich bin in.

Ich habe eine Menge zu googeln ohne Erfolg, ich habe auch verbrachte ziemlich viel Zeit mit meinem Kopf in meinen VBA-Büchern.

Jegliche Hilfe würde sehr geschätzt werden.

  • Arbeitsmappe.LinkSources bietet eine Reihe von links. aber dein code nicht, behandeln Sie es wie ein array. Haben Sie versucht, die Schleife durch das array?
  • Ich bin mir nicht sicher, ob dies irgendeinen Unterschied machen würde, der code oben macht, was ich erwarte, es zu tun, ActiveWorkbook.Changelink ist, ersetzen Sie das array mit meinem neuen source name, aber ich brauche einen Weg, der speziell auf die Verknüpfungen innerhalb bestimmter Blätter innerhalb der Arbeitsmappe, anstatt die gesamte Arbeitsmappe als eine.
  • Ich gebe zu, nicht wirklich wollen, um zu Experimentieren, aber vielleicht diese Antwort von Herrn Excel-Foren helfen.
  • Haha entertainly verbrachte ich eine Stunde oder so früher schlug mein Kopf vom Schreibtisch, herauszufinden, dass ein aus - mir scheint es, als ob die "Antwort" nicht wirklich die Frage beantworten. Vielleicht brauche ich verbringen mehr Zeit zu spielen, um mit dem code, ich spüre einen Abend vor meinem laptop vor.
  • Okay, gut. Die besonders nützlichen Teil der Antwort ist die for-Schleife. Sie brauchen wirklich nur zu verstehen. Ist es eine Schleife durch die links und schaut dann in den spezifischen Blatt-für diesen link und ändert es, wenn er Sie findet. Dieses ist, weil, aus welchem Grund auch immer die VBA nicht bieten ein Arbeitsblatt.ChangeLink-Methode verwenden. Durch die Suche auf dem Arbeitsblatt statt der aufrufenden Arbeitsmappe.ChangeLink Sie explizit wählen können, die links zu ändern. Sicherlich ein Schmerz, aber es sieht brauchbar.
Schreibe einen Kommentar