我有一个Word VB宏,可以自动在两栏布局中插入Visio绘图。代码运行得很好,但我想进一步自动化这个过程。为此,我专门寻找将光标移动到所选页面第一列末尾的代码。此列通常还没有分栏符,因此我的解决方案不能涉及搜索分栏符。我相信我已经有了选择当前页面的代码,只是没有选择该页面第一列的末尾。
我能够通过编程将光标移动到页面的末尾,并且能够通过编程将光标移动到页面的顶部。我就是不能让光标移动到第一列文本的末尾。到目前为止,我发现的所有在线示例都集中在移动到表中列的末尾,而不是移动到两列布局中的文本列的末尾。
2019年10月15日:根据@cindym的请求,这里有一个示例页面
SamplePage
文档可能有几页长。我当前的宏运行良好,符合公司对这类文档的要求,但它要求用户将光标放在他们想要插入两列图形的位置。我想让这个过程更加自动化(在现有的用户表单中选中"top“或"bottom”,并让宏将两列图形相应地放在当前页面上)。
同样,我可以通过编程将光标移动到页面的顶部或底部,只是不能将光标移动到第一列的末尾(两列页面上的左侧列)。我们的代码插入连续的分隔符,如果它可以在左手边的文本列的末尾插入第一个分隔符,它就可以很好地工作。
部分基于CindyM的建议,我在当前页面的底部尝试了以下两列Visio图表,但在第三行代码后出现错误。除了这个最初由VBA驱动的光标放置问题之外,我的其余代码都工作得很好(选择Visio、插入连续的换行符、插入插图的标题等)。希望这有助于澄清。再次感谢!
`ActiveDocument.Bookmarks("\Page") `Select selects current page`
Selection.GoToNext (wdGoToPage) `cursor at top of page 2`
Selection.MoveEnd wdCharacter, -1 `cursor now at end of target page`
Selection.MoveRight Unit:=wdItem `cursor now in headline, top of page :(`
Selection.MoveRight Unit:=wdItem
[1]: https://i.stack.imgur.com/OR7BF.png发布于 2019-10-12 02:30:55
由于问题中没有包含任何代码作为起点,下面将使用GoTo移动到特定页面。假设这个职位不是报纸专栏。然后,执行相当于在UI中按两次Alt+Down箭头移动到下一列(报纸栏)的操作,这将是第一列之后的下一列的开始。然后将所选内容向后移动一个字符,将其放在列的末尾。
如果页面的顶部是报纸栏目,并且代码应该移到该栏目的末尾,则删除其中一个Selection.MoveRight Unit:=wdItem行。
Sub MoveToEndOfNextNewspaperColumn()
Dim goToPageNr As String
goToPageNr = "1"
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:=goToPageNr
Selection.MoveRight Unit:=wdItem
Selection.MoveRight Unit:=wdItem
Selection.MoveEnd Unit:=wdCharacter, Count:=-1
End Subhttps://stackoverflow.com/questions/58332486
复制相似问题