haw*_*bsl 10 .net interop ms-word mergefield
我们使用Word Interop从.Net操作Word 2007文档.主要用以下字段做事:
For Each f In d.Fields
f.Select()
//do stuff with fields here
Next
Run Code Online (Sandbox Code Playgroud)
这将选择文档中的最后一个字段.
因此,为了整洁,我们希望将光标定位在文档的末尾(甚至开始就可以).
谷歌搜索答案并没有太多...我最近得到的似乎是建议我们需要让自己参与范围或书签.有一个对象的GoTo方法,Document但WdGoToItem它提供的选项都没有用.
是不是有一种简单的方法可以将光标发送到文档的结尾(或开头)?
编辑
我的部分问题是我不喜欢选择最后一个字段.现在已经意识到我能做到
f.Unlink
Run Code Online (Sandbox Code Playgroud)
删除mergefield,只是将字段文本保留为纯文本.哪个更整洁,我们是否也重新定位光标
haw*_*bsl 13
@Alexander Kojevnikov:感谢您的帮助,因为您让我走上正轨.但是我发现我必须将.GoTo应用于Word Selection对象,而不是Document.如:
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)
Run Code Online (Sandbox Code Playgroud)
这是它在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);
Run Code Online (Sandbox Code Playgroud)
我想在VB.Net中它会更容易,因为它支持可选参数.
| 归档时间: |
|
| 查看次数: |
30404 次 |
| 最近记录: |