2010-05-21 72 views
2

我們有不值得羨慕的發生:各種主文件指,他們曾經是由於目錄重命名子文檔不再。是否有一種編程方式來調整HYPERLINK字段而不會丟失主/子文檔關係?如何以編程方式更改Word 2007母版文檔中的子文檔位置?

我走了這麼遠......

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(「操作無法完成,因爲主控文檔中修訂選項不匹配的選項子文檔在主文檔和子文檔中設置跟蹤更改選項相同。「)但是,我不完全確定這意味着什麼。

想法任何人?

+0

我只是找到了一個非程序化的解決方法!保存在XML中,編輯XML,在Word中重新打開。不過,我會對程序化解決方案感興趣。 – bugmagnet 2010-05-21 07:00:55

回答

0

基於您的代碼,並書面記錄,我會說,錯誤基本上意味着你已經關閉軌道變化的主,你通過它運行修復它之前,但你改變subdoc的鏈接有跟蹤更改上。

您是否嘗試過打開修訂和改變的聯繫?

你也應該可能測試場,你即將修改的那種。文檔中可能有其他類型的字段不是鏈接,並且您可能會無意中將其與此代碼混淆。我覺得你這樣做與Field.Type

相關問題