我正在用Microsoft.Office.Interop.Word把一段用VBA写的代码翻译成c#我观察到p.Range.Information[WdInformation.wdVerticalPositionRelativeToPage]
在c#中与在VBA中使用时给出不同的值p.Range.Information(wdVerticalPositionRelativeToPage)
中p为段落对象。
当Word文档的页面上出现形状时,就会发生这种情况。我在想为什么会这样?当文档通过c#与VBA打开时,在渲染文档时是否有不同之处?
PS -在这两种情况下,单词可见性都设置为false。
编辑:更新-我试图将可见性设置为true,并且我确实观察到使用c#和使用VBA启动文档时文档渲染的差异。我该如何解决这个问题?
所以我找到了问题所在。我的代码试图访问像这样的头节
foreach (Section sect in objDoc.Sections)
{
foreach (HeaderFooter hf in sect.Headers)
{
someFunction(hf.Range.Paragraphs, false, false);
if (hf.Shapes.Count > 0) // to handle shapes in Headers
{
someFunction(hf.Shapes);
}
}
}
由于某些原因,访问标题会改变段落在呈现中的位置,从而导致不同的值。为了解决这个问题,我现在将头文件作为代码的最后一部分来访问。希望这对大家有所帮助。