Dot-Net

將游標定位在 Word 文件的開頭/結尾

  • February 10, 2019

我們正在使用 Word Interop 從 .Net 操作我們的 Word 2007 文件。主要用以下欄位做事情:

For Each f In d.Fields
   f.Select()
   //do stuff with fields here            
Next

這將使文件中的最後一個欄位保持選中狀態。

因此,為了簡潔起見,我們希望將游標定位在文件的末尾(甚至開頭也可以)。

Google搜尋答案並沒有太多……我能得到的最接近的似乎是建議我們需要讓自己參與範圍或書籤。該對像有一個GoTo方法,DocumentWdGoToItem它提供的選項都沒有用。

難道沒有一種簡單的方法可以將游標發送到文件的末尾(或開頭)嗎?

編輯

我的部分問題是我不喜歡選擇最後一個欄位。現在已經意識到我可以做到

f.Unlink

刪除mergefield並將欄位文本保留為純文字。哪個更整潔,無論我們是否也重新定位游標

我不確定我使用的是與您相同的環境,但是要轉到文件的開頭結尾,這對我有用:

Private Sub moveCursorToStartOfDocument()
   w.Selection.HomeKey(WdUnits.wdStory, Nothing)
End Sub

Private Sub moveCursorToEndOfDocument()
   w.Selection.EndKey(WdUnits.wdStory, Nothing)
End Sub

我在 Delphi 中使用單元 Word_TLB 和應用程序對象-Word.Application

如下:

aWordDoc.Application.Selection.EndKey(wdStory,wdMove);

一般word文件的結尾是

Selection.EndKey( WdUnits.wdStory, WdMovementType.wdMove)

當我使用

Selection.GoTo(Word.WdGoToItem.wdGoToLine, Word.WdGoToDirection.wdGoToLast, Nothing, Nothing);
Selection.InsertFile('documnet.docx');

在最後一行之前插入了新內容。

引用自:https://stackoverflow.com/questions/1591682