我们正在操纵从.net使用Word互操作我们的Word 2007文档。大多做的东西与字段中:

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

此离开最后字段中选择在文档中。

因此,对于整洁起见,我们希望将光标定位在在文档的(或甚至在开始将是OK)。

谷歌搜索的答案不扔了多...我可以就近似乎在暗示我们需要给自己用的范围或书签涉及。有用于GoTo对象Document方法但没有的WdGoToItem选项时,它提供非常有用。

是不是有一个简单的方法来只发送光标到端(或开始)的文件?

修改

我的问题的一部分是我不喜欢留下选择的最后一个字段。现在已经意识到,我可以做

f.Unlink

以除去mergefield和刚刚离开领域文本那里作为纯文本。这是整洁,无论是否我们还重新定位光标

有帮助吗?

解决方案

@Alexander Kojevnikov:感谢您的帮助,因为你把我在正确的轨道上。但是我发现我已经到.GoTo适用于Word中选择对象,而不是文件。如:

    Dim what As Object = Word.WdGoToItem.wdGoToLine
    Dim which As Object = Word.WdGoToDirection.wdGoToLast

    //below line had no effect
    //d.GoTo(what, which, Nothing, Nothing)

    w.Selection.GoTo(what, which, Nothing, Nothing)

其他提示

这是如何看起来在C#:

object missing = Missing.Value;
object what = Word.WdGoToItem.wdGoToLine;
object which = Word.WdGoToDirection.wdGoToLast;
doc.GoTo(ref what, ref which, ref missing, ref missing);

我想,因为它支持可选参数将是,即使在VB.Net容易。

我不知道我使用的是相同的环境中你,但去的开始结束文件的这里对我来说是什么在起作用:

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

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

我用单元Word_TLB在Delphi与机应用对象 - 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');

新含量为刀片最后一行之前。

找出对于实际的代码的轮廓最简单的方法是记录在Word宏该特定动作。然后可以修改所生成的代码,以满足VB的不同的语法(一个或多个),VB.NET,C#等

代码段下面演示一个VB.NET应用用法:

Imports wordNmSpace = Microsoft.Office.Interop.Word
' Create an object for the application instance
objWord = CreateObject("Word.Application")

' Create a reference of the selection object within Word
objSelection = objWord.Selection

' Now comes the part where you move selection position to the end of document
objSelection.endof(wordNmSpace.WdUnits.wdStory, wordNmSpace.WdMovementType.wdMove)

希望这有助于。

要在当前文档的在C#Word加载VSTO结束变化光标位置:

this.Application.ActiveDocument.Range(
this.Application.ActiveDocument.Content.End-1,
this.Application.ActiveDocument.Content.End-1).Select();

请参阅如何以编程方式定义和选择的文件 <范围/ p>

尝试这种情况:

int lNumberOfPages = 
  _WordDoc.ComputeStatistics(Word.WdStatistic.wdStatisticPages, false);

WordApp.Selection.GoTo(Word.WdGoToItem.wdGoToPage,WordApp.WdGoToDirection.wdGoToLast, lNumberOfPages);

可以使用预定义的书签:

EndOfDoc oDoc.Bookmarks.Item("\endofdoc").Range

其他预定义的书签:

ActiveDocument.Bookmarks("\Para").Copy "currpara"

https://msdn.microsoft.com / EN-US / VBA /字VBA /用品/预定义-书签

净办公室:

mydoc.Range(GlobalClass.mydoc.Content.End-1 , mydoc.Content.End - 1).Select();
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top