我们正在操纵从.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
和刚刚离开现场文本有以纯文本格式。 这是整洁,我们是否也重新定位光标
Answer 1:
@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)
Answer 2:
这是它的外观在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是更容易。
Answer 3:
我不知道我使用的是相同的环境中你,但去的开始或结束的文件在这里对我来说是什么在起作用:
Private Sub moveCursorToStartOfDocument()
w.Selection.HomeKey(WdUnits.wdStory, Nothing)
End Sub
Private Sub moveCursorToEndOfDocument()
w.Selection.EndKey(WdUnits.wdStory, Nothing)
End Sub
Answer 4:
我用单位Word_TLB在Delphi与机应用对象 - Word.Application
如下:
aWordDoc.Application.Selection.EndKey(wdStory,wdMove);
通常结束字文档的是 :
Selection.EndKey( WdUnits.wdStory, WdMovementType.wdMove)
当我使用
Selection.GoTo(Word.WdGoToItem.wdGoToLine, Word.WdGoToDirection.wdGoToLast, Nothing, Nothing);
Selection.InsertFile('documnet.docx');
新内容的最后行前插入。
Answer 5:
要弄清楚的实际代码大纲的最简单方法是在Word中录制宏为具体行动。 然后,你可以修改生成的代码,以满足VB,VB.NET,C#等不同的语法(S)
下面摘录的代码演示了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)
希望这可以帮助。
Answer 6:
要改变光标位置在当前文档的在C#字结束外接VSTO:
this.Application.ActiveDocument.Range(
this.Application.ActiveDocument.Content.End-1,
this.Application.ActiveDocument.Content.End-1).Select();
请参阅如何:在文档中编程定义和选择范围
Answer 7:
试试这个 :
int lNumberOfPages =
_WordDoc.ComputeStatistics(Word.WdStatistic.wdStatisticPages, false);
WordApp.Selection.GoTo(Word.WdGoToItem.wdGoToPage,WordApp.WdGoToDirection.wdGoToLast, lNumberOfPages);
Answer 8:
您可以使用预定义的书签:
EndOfDoc oDoc.Bookmarks.Item("\endofdoc").Range
其他预定义的书签:
ActiveDocument.Bookmarks("\Para").Copy "currpara"
https://msdn.microsoft.com/en-us/VBA/Word-VBA/articles/predefined-bookmarks
Answer 9:
净办公室:
mydoc.Range(GlobalClass.mydoc.Content.End-1 , mydoc.Content.End - 1).Select();
文章来源: Position cursor at start/end of Word document