通过 VBA 更新 Microsoft Word 链接项

通过 VBA 更新 Microsoft Word 链接项

是否可以改变物品通过使用 VBA,如何实用地在 MS Word 中创建指向 Excel 电子表格的链接?

我发现关于如何更改文件源,但不是物品,如下所示编辑链接MS Word 2010 中的菜单:

编辑链接选项卡

已经有人问过同样的问题这里,但没有任何答案,大约 2 年前。我也调查过链接格式属性文档,它用于编辑链接的源,但却没有任何结果。

对于如何解决该问题的任何想法都将受到赞赏。

背景:我有一个 Excel 电子表格,用于向 word 文档提供数据。我试图将此文档用作模板,根据分析,我将更改向 word 文档提供数据的电子表格。电子表格中的表格(未格式化)的范围可能有所不同。但是,它们的列数相同。由于行数不同,我必须相应地更改项目字段。

编辑

我提供了 2 个示例文件作为该问题的 MWE。它们可以在以下位置找到这里

答案1

我找到了一个解决方法。伊滕斯,我创建了一个 VBA 脚本来命名所有链接的范围。因此,我没有更改 Word 中的链接项,而是更改了 excel 中的命名范围值。链接项保持不变,但它指向一个可以实际修改的范围。以下是我编写的用于将名称添加到范围的代码:

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

这种方法的缺点是我必须手动重新创建(链接)我之前创建的所有连接。要更改文件源,我使用了问题链接中的代码。为了完整起见,我在这里写它:

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

最后,一次性更新所有链接:

Sub AutoOpen()
    ActiveDocument.Fields.Update
End Sub

相关内容