Ich habe dazu eine Arbeit gefunden. Anstatt die Itens zu ändern, erstellte ich ein VBA-Skript, um alle verknüpften Bereiche zu benennen. Anstatt das Linkelement in Word zu ändern, ändere ich den benannten Bereichswert in Excel. Das Linkelement bleibt das gleiche, weist jedoch auf einen Bereich hin, der pragmatisch geändert werden kann. Hier ist der Code, den ich zusammengefügt habe, um den Bereichen Namen zu geben:
Sub CreateNamedRanges() Dim i As Integer For i = 1 To Worksheets.Count sheetName = "Mysheet" & i varName = "Myvar" & CStr(i) Set Rng = Sheets(sheetName).Range("G6:I9") ActiveWorkbook.Names.Add Name:=varName, RefersTo:=Rng Next i End Sub
Der Nachteil dieses Ansatzes ist, dass ich alle Verbindungen, die ich zuvor geknüpft hatte, manuell neu erstellen musste. So ändern Sie die Datei Quelle Ich habe den Code im Fragenlink verwendet. Zum Abschluss schreibe ich es hier:
Sub changeSource() Dim dlgSelectFile As FileDialog 'FileDialog object Dim thisField As Field Dim selectedFile As Variant 'must be Variant to contain filepath of selected item Dim newFile As Variant Dim fieldCount As Integer 'create FileDialog object as File Picker dialog box Set dlgSelectFile = Application.FileDialog(FileDialogType:=msoFileDialogFilePicker) With dlgSelectFile 'use Show method to display File Picker dialog box and return user's action If .Show = -1 Then 'step through each string in the FileDialogSelectedItems collection For Each selectedFile In .SelectedItems newFile = selectedFile 'gets new filepath Next selectedFile Else 'user clicked cancel End If End With Set dlgSelectFile = Nothing 'update fields fieldCount = ActiveDocument.Fields.Count For x = 1 To fieldCount ActiveDocument.Fields(x).LinkFormat.SourceFullName = newFile Next x End Sub
Um alle Links auf einmal zu aktualisieren:
Sub AutoOpen() ActiveDocument.Fields.Update End Sub