急,Word Automation高手看过来,一个看似简单却非常不好解决的问题,关于如何得到WORD中连续显示的行号

feidaosh 2012-07-04 11:15:16
这是一个看似简单,却非常难以解决的问题。
我们在WORD的Print Layout View(页面显示模式)中,可以通过在Page Layout(页面设置)菜单中的Line Numbers(行号)中设置为Continuous(连续)或Restart Each Page(每页重新开始),来在页面的左边缘显示每一行的行号。如果我们设置为Continuous,显示的行号将从文档的第一行开始计数。
问题是,如何用代码来得到当前行的这个显示在页面左边沿的从文档第一行开始计数的行号?
问题看似简单,但实践中却发现,这个显示的行号和Word Automation中提供的几种方法得到的行号都不一样!
如果我们用range.Information(wdFirstCharacterLineNumber)来得到的行号,会发现这个行号只是从每页的第一行开始重新计数。
如果我们用从文档开头到当前行的range.ComputeStatistics(wdStatisticLines)来得到行号,会发现这个行号包含了很多并不记入显示行号的行,如表格内的表,目录前的隐藏行等一些特殊行。
所以,如何用代码得到这个显示的行号?请高手指教,100分奉送。
...全文
639 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
feidaosh 2012-07-09
  • 打赏
  • 举报
回复
Ok, that post is my post...
那个帖子就是我发的。。。另一个网友就我。。。
dsd999 2012-07-06
  • 打赏
  • 举报
回复
http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/018dbf54-85fc-4f17-b9ec-28d4c8bf2bf9

另外一个网友的提问。
dsd999 2012-07-06
  • 打赏
  • 举报
回复
http://social.msdn.microsoft.com/Forums/en/vsto/thread/cdc81b25-f2e3-47bd-997c-a5015d1fa7b4

和你同样的问题,好像也没很好的办法。

他是计算每页的行数,然后汇总算的。
feidaosh 2012-07-05
  • 打赏
  • 举报
回复
把当前行认为是当前选择所在的行。则使用Information属性时
Msgbox Selection.Range.Information(wdFirstCharacterLineNumber)
使用ComputeStatistics方法时
Set rng = ActiveDocument.Range(1, Selection.Range.Start)
Msgbox rng.ComputeStatistics(wdStatisticLines)

dsd999 2012-07-04
  • 打赏
  • 举报
回复
range是怎么设置的?

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧