单词VBA向上移动

单词VBA向上移动,vba,ms-word,Vba,Ms Word,我正在使用以下脚本增加MS Word中的选择 Selection.MoveUp Unit:=wdLine, Count:=10, Extend:=wdExtend 结果因当前页面视图而异,结果如下: 如果页面视图设置为只显示一列页面,则它会完美地扩展上移 如果页面视图设置为两个或多个页面并排查看,并且您位于第二行或更远的页面中,则页面顶部的一个上移计数将选择整个上一页 如果页面视图设置为两个或多个页面并排查看,并且您位于页面的顶行,则一个上移计数会在页面顶部停止 这是操作中的缺陷还是我

我正在使用以下脚本增加MS Word中的
选择

 Selection.MoveUp Unit:=wdLine, Count:=10, Extend:=wdExtend
结果因当前页面视图而异,结果如下:

如果页面视图设置为只显示一列页面,则它会完美地扩展
上移

如果页面视图设置为两个或多个页面并排查看,并且您位于第二行或更远的页面中,则页面顶部的一个
上移
计数
将选择整个上一页

如果页面视图设置为两个或多个页面并排查看,并且您位于页面的顶行,则一个
上移
计数
会在页面顶部停止


这是操作中的缺陷还是我没有正确使用
向上移动
功能?

作为解决方法,我所做的工作

在项目中,作为DocumentNew Sub的一部分,将页面视图设置为100%。然后,DocumentNew Sub将视图设置为100%,所有脚本将在用户访问文档之前执行

在Project-Microsoft Word对象-此文档中

Private Sub Document_New()

InitialScreen.Show

'If the view is set to View Pages Side by side it messes up the Move Selection
'WhenInserting the Group Headings
ActiveWindow.ActivePane.View.Zoom.Percentage = 100

End Sub
根据评论,我玩了一下
wdparagarpah
。他对结果表示满意:

wd段落
不用担心页面布局,这很好

Extend=wdExtend

计数从选择上方的行开始 不包括所选内容 将每个表行视为1

Extend=wdMove

计数从所选内容上方的行开始 将每个表行视为列数 段落标记基本上为每个计数使用段落标记 如果有一个“Shift+Enter”(新行,而不是新段落),那么它会将其视为
很明显,一个段落,显然是

你可以考虑的,如果“行”实际上是所有段落,如在你的插图中:而不是使用选择,使用一个范围对象。这并不取决于屏幕布局,因为行是。例如:Dim rng as Word.Range:Set rng=Selection.Range:rng.MoveStart wdparagration,-10:rng.selected一直在使用
wdLine
,因此我明天将尝试使用
段落。谢谢我的遗嘱将说明它在遇到实际的段落或表格时是如何工作的。我很想知道它是否/如何为您工作:-),但请记住使用范围对象而不是选择对象进行测试。@Cindymister我已经试过了。使用
wdparagration
作为一个单元来代替
wdLine
似乎更好,但是
扩展部分改变了结果。我将补充它作为一个答案。对我来说,
wdLine
仍然工作得更好