将光标定位在Word文档的开始/结束
-
22-09-2019 - |
题
我们正在操纵从.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"
净办公室:
mydoc.Range(GlobalClass.mydoc.Content.End-1 , mydoc.Content.End - 1).Select();