书签前的Excel vba插入不会给出预期的单词顺序

时间:2016-05-03 16:12:39

标签: excel vba excel-vba bookmarks

我正在使用下面的代码打开一个新的Word文档并添加书签。我正在尝试在书签“MyBookmark”中插入多个单词来形成句子:“曾几何时......”

我期待通过使用InsertBefore,在书签之前插入单词,然后我可以在第一个单词之后添加下一个单词,因为书签最后会出现在单词的末尾。这不是发生的事情,而是在创建句子的句子开头添加单词:“a time ... on Once”

如何在句子末尾添加单词?

我尝试过使用InsertAfter,结果相同。我不想改变我添加单词的顺序,因为这在我想要实现的大规模上是不可行的。下面的代码是我想在实际实现中实现的一个例子,我打开一个保存为dotx文件的模板。

Sub InsertBefore()
    ' Open Word document from template
    Set wrdApp = CreateObject("Word.Application")
    wrdApp.Visible = True
    wrdApp.Documents.Add
    wrdApp.Activedocument.Bookmarks.Add Name:="MyBookmark"

    ' Insert text
    wrdApp.Activedocument.Bookmarks("MyBookmark").Range.InsertBefore "Once "
    wrdApp.Activedocument.Bookmarks("MyBookmark").Range.InsertBefore "upon "
    wrdApp.Activedocument.Bookmarks("MyBookmark").Range.InsertBefore "a time..."
End Sub

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用wrdApp.Activedocument.Bookmarks("MyBookmark").Range.Select 'Then from there on you just use the Selection object wrdApp.Activedocument.ActiveWindow.Selection.TypeText("Once ") wrdApp.Activedocument.ActiveWindow.Selection.TypeText("upon ") wrdApp.Activedocument.ActiveWindow.Selection.TypeText("a time...") 对象。你先去那里,然后你就开始从那里打字:

{{1}}