代码之家  ›  专栏  ›  技术社区  ›  bugmagnet

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

  •  2
  • bugmagnet  · 技术社区  · 14 年前

    我们遇到了不可行的情况:各种主文档指的是由于目录重命名而不再位于原来位置的子文档。是否有一种在不丢失主/子文档关系的情况下调整超链接字段的编程方法?

    我走了这么远…

    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 回复  |  直到 13 年前
        1
  •  0
  •   DarinH    13 年前

    基于您的代码和写操作,我想说的是,错误基本上意味着您在运行主控形状以修复它之前关闭了它的跟踪更改,但是您要更改的子文档链接上有跟踪更改。

    您是否尝试打开曲目更改并更改链接?

    您还应该测试将要修改的字段类型。文档中可能还有其他类型的字段不是链接,您可能会不经意地将它们与此代码混淆。我想你是用field.type