如何以编程方式更改Word 2007主文档中的子文档位置?

时间:2010-05-21 06:44:15

标签: ms-word word-vba

我们遇到了不可思议的事情:各种主文档都指的是由于目录重命名而不再像以前那样的子文档。是否有一种编程方式来调整HYPERLINK字段而不会丢失主/子文档关系?

我到目前为止......

Sub FixyaLinks()
    Dim s 'As String
    Dim i As Long
    Dim bTrackRevFlag As Boolean
    Dim bShowRevFlag As Boolean

    bTrackRevFlag = ActiveDocument.TrackRevisions
    bShowRevFlag = ActiveDocument.ShowRevisions

    ActiveDocument.TrackRevisions = False
    ActiveDocument.ShowRevisions = False

    For i = 1 To ActiveDocument.Fields.Count
    s = ActiveDocument.Fields.Item(i).Code.Text
    If InStr(s, "CURRICULUM\\NEW") Then
        s = Replace(s, "NEW Foundation Units-in developing", "Foundation Programme Units")
        ActiveDocument.Fields.Item(i).Code.Text = s
    End If
    Next
    ActiveDocument.TrackRevisions = bTrackRevFlag
    ActiveDocument.ShowRevisions = bShowRevFlag
End Sub

它弹出ActiveDocument.Fields.Item(i).Code.Text = s,错误5686(“操作无法完成,因为主文档中的”跟踪更改“选项与子文档的选项不匹配。使”跟踪更改“选项在主文档和子文档。“)但是,我不完全确定这意味着什么。

想点什么?

1 个答案:

答案 0 :(得分:0)

基于你的代码和写法,我会说这个错误基本上意味着你在修复它之前已经关闭了主服务器中的跟踪更改,但是你正在改变的子网链接跟踪了

您是否尝试启用跟踪更改并更改链接?

您还应该测试您即将修改的KIND字段。文档中可能还有其他类型的字段,这些字段不是链接,您可能会无意中使用此代码搞乱它们。我认为你使用Field.Type

来做到这一点