将第二个书签放在word文档表格单元格的下一行?

时间:2017-06-20 15:48:56

标签: word-vba bookmarks

我将一个书签放在光标位置的word文档表格单元格中。现在我想在书签之后向下移动一行,在同一个表格单元格中,并放置另一个书签。我尝试在书签后添加回车符,但是光标仍然在书签的第一行。

ActiveDocument.Bookmarks.Add Name:=bmItemNo, Range:=BMRange
'Adds carriage return after bookmark
BMRange.InsertAfter (Chr(13))

我也尝试将我的光标移动到行的末尾并向下移动1行,但它跳出了表格单元格:

ActiveDocument.Bookmarks.Add Name:=bmItemNo, Range:=BMRange
'Adds carriage return after bookmark
BMRange.InsertAfter (Chr(13))
Selection.EndKey unit:=wdLine, Extend:=wdMove
Selection.MoveDown unit:=wdLine, Count:=1, Extend:=wdMove

我的书签也可以用多行进行自动换行。

如何将我的光标移到书签后的下一行?

1 个答案:

答案 0 :(得分:1)

您的代码几乎可以使用。你没有定义或告诉我们BMRange是什么,所以我做了一些假设。因此,请始终使用'Option Explicit'。您想要明确定义所有变量。此外,插入文本和光标无关。通过Ranges进行思考练习,在文档中构建,而不是插入点。虽然我的代码示例并不是最好的,但它确实说明了您的问题。

我无法得到您的结果,但这是我认为您想要的。是吗?

Option Explicit
Public Sub Test()
    Dim BMRange As Range
    Set BMRange = Selection.Range

    ActiveDocument.Bookmarks.Add Name:="One", Range:=BMRange

    'Adds carriage return after bookmark
    BMRange.InsertAfter (Chr(13))

    Selection.EndKey unit:=wdLine, Extend:=wdMove
    Selection.MoveDown unit:=wdLine, Count:=1, Extend:=wdMove

    Set BMRange = Selection.Range
    ActiveDocument.Bookmarks.Add Name:="Two", Range:=BMRange
End Sub