與TOC

2016-09-13 34 views
1

WORD OLE我得到了一個有趣的問題:與TOC

WordApp.Selection.HomeKey(unit := wdStory); 
if FileExists(s) then 
    WordApp.Selection.InsertFile(Filename := s, ConfirmConversions := false, 
    Link := false, Attachment := false); 

這工作得很好大多數字的文件,除了那些我們獲得了「自動內容表」作爲文檔中的第一個元素。在這種情況下與自動化崩潰:

這個動作是不是塊級別的XML

之外有效我嘗試了一些其他的功能,如:

WordApp.Selection.InsertText('Test')/(#13#10) 
WordApp.Selection.InsertBreak(Page/Line) 

具有相同負結果。當第一個元素是自動錶時,似乎光標位置是無效的。

任何想法如何我可以解決這個在我身邊?

回答

1

您需要確保內容插入文檔的開頭,即第一段不包含內容控件(圍繞ToC的內容)。

家庭鑰匙並不總是讓你一開始。對於文檔開始處的內容列表,按主頁鍵會將您帶到包含目錄的內容控件的開頭。爲了獲得在前面,你可以在SelectionEnd(和Start)屬性設置爲0。此外,你要插入表的內容前一個段落:

WordApp.Selection.Start = 0 
WordApp.Selection.End = 0 
WordApp.Selection.InsertParagraphBefore 
+0

我沒有更好的結果想這(對在主鍵後的開始/結束爲0)。 – Sillicoid

+0

但是工作原理是這樣的代碼(我真的不喜歡這一點 - 要添加的文件是「內部」的TOC是這樣的: 嘗試 <作爲前插入> 除了 <集選擇的開始/結束1/1 > end – Sillicoid

+0

非常感謝您使用InsertParagraphBefore它完美的工作! – Sillicoid