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