在单词互操作中使用选择和范围

six*_*t04 2 .net c# interop ms-word office-interop

范围和选择如何工作?

如果您通过范围在页面顶部插入某些内容,是否通过插入带有选区的内容来覆盖?选择会影响范围吗?

我遇到问题,我按此顺序插入,但InlineShapes显示在Range.Inserts上方文档的顶部.此外,Selection.InsertBefore被InlineShapes取代.

我希望我的范围插入显示在每张图片上方,如标题.如何才能做到这一点?

Selection.InsertBefore
**Loop**
     Range.InsertParagraphAfter
     Selection.InlineShapes.AddPicture
**End Loop** 
Run Code Online (Sandbox Code Playgroud)

我已经三次问了这样一个问题而没有回复.什么都有帮助!

编辑:

我离我更近了一步.现在,当我添加InlineShapes时,我使用Content.InlineShapes.AddPicture(FileName:x,range:y).现在图片显示在段落之间,但它们位于我添加图片之前添加到文档的表格的第一个单元格中.我添加了折叠范围的表格.

Las*_*sen 9

你写:

I've asked a question like this three times now with no responses. Anything would help!
Run Code Online (Sandbox Code Playgroud)

作为参考,提到的问题(我猜)是:

...现在都回答了:)

你在这篇文章中提出了多个问题 - 首先:

范围和选择如何工作?

实际上,文档很好地涵盖了这一点:

范围:

"代表文档中的连续区域.

每个Range对象由起始和结束字符位置定义.与书签在文档中的使用方式类似,Range对象用于标识文档的特定部分......"

参考:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.range(v=office.14).aspx.

如果您通过范围在页面顶部插入某些内容,是否通过插入带有选区的内容来覆盖?

有可能.这取决于所选择的内容.如果选择与刚刚插入的内容范围相交的内容并更改内容,则会更改范围的内容.

要完全理解这一点,我建议你阅读:

选择会影响范围吗?

这取决于.文件说明:

范围对象与选择无关.

参考:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.range(v=office.14).aspx

...所以如果你只是做一个简单的选择,例如,阅读内容或将内容复制到剪贴板,没有什么会改变.但是,如果您使用选择来更改内容,当然这会影响范围指向的内容.在此继续,您应该注意MS建议使用Range对象进行文档操作:

由于Range对象与Selection对象共享许多相同的方法和属性,因此当没有理由在物理上更改当前选择时,使用Range对象更适合操作文档.

参考:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.selection.aspx

最后,你问:

我遇到问题,我按此顺序插入,但InlineShapes显示在Range.Inserts上方文档的顶部.此外,Selection.InsertBefore被InlineShapes取代.

我希望我的范围插入显示在每张图片上方,如标题.如何才能做到这一点?

请参阅我之前对您的问题的回答:" 如何使用word interop一次一个地添加项目到word文档 "这里:https://stackoverflow.com/a/12751805/700926 - 这将为您提供一个完整的回答.