2016-07-22 93 views
0

我有這樣的代碼(功能區按鈕)在我的文檔更新TOC(Word 2010中 - Windows 7中)字TOC更新不能正常工作

ActiveDocument.TablesOfContents(1).Update 

,但它不更新TOC

唯一能做的就是從參考菜單中內置的「更新表格」命令。

按下,同時光標F9鍵是在TOC不工作,也沒有這個代碼

Dim TOC As TableOfContents 
With ActiveDocument 
    For Each TOC In .TablesOfContents 
     TOC.Update 
    Next 
End With 

任何想法可能什麼,因爲它是非常令人沮喪

+1

可以肯定的是,包含TOC的文檔絕對是ActiveDocument?成功的手動更新意味着該字段已解鎖。 (FWIW單行代碼在這裏工作,如果沒有TOC或者我把​​TOC放在文本框之類的東西中,那麼錯誤會失敗,這就是爲什麼我想知道你的代碼是否可以針對另一個文檔運行的原因)。作爲一個實驗,值得嘗試Activedocument.Fields(n).Update,其中n是doc中TOC字段的編號。 – 2016-07-22 08:06:59

+0

使用Activedocument.Fields(n).Update也無法更新 – djcamo

+0

我會考慮(a)嘗試使用包含單個ToC的全新文檔,(b)修復Office和(c)文檔可能已損壞(在哪種情況下我會嘗試修復。 – 2016-07-25 08:45:45

回答

0

我寫這一個很久以前,因爲這個問題...

Option Explicit 

' Update all the tables of contents, without annoying prompts. 
Sub UpdateAllMyFields() 
    Dim t As TableOfContents 
    For Each t In ActiveDocument.TablesOfContents 
     t.Update 
    Next t 
    ActiveDocument.Fields.Update  ' Update all fields. 
End Sub 

我使用它,每當我必須處理TOC和領域。 我還在打印選項集上有更新字段。