我正试图从excel VBA到我的Word文档中的特定点。我的最终目标是将新文本复制到文档的底部。
所以我在我的文档底部放了一个书签并做了这个:
wDoc.Goto What:=wdGoToBookmark, Which:=wdGoToFirst, Name:="TemplatePage"
它告诉我“那个书签不存在。”这很有趣,因为它显然有用。它对我的所有书签说了同样的话。
这不会给我一个错误,相反它没有做任何事情:
wDoc.Goto What:=wdGoToBookmark, which:=wdgotofirst
我错过了一些明显的东西吗?
答案 0 :(得分:1)
我错过了一些明显的东西吗?
IMO你错过了一些东西,但使用“Goto”这个词可能会给人留下错误的印象。
.Goto实际上使您指定的对象“转到”指定的位置。因此,如果该对象是范围,则不应期望选择更改。
另一件事是在这种情况下你必须省略“which”参数。我不知道你怎么能从文档中确定 - 这是一些与范围有关的事情的试错问题。
由于wDoc或wDoc.Content隐含的范围无论如何都不会改变,因此通过执行.Goto作为命令,您将立即丢失任何有用的信息。如果您将其用作函数,则会得到一个范围,因此您可以使用,例如
Dim r As Word.Range
Set r = wDoc.Goto(What:=wdGoToBookmark, Which:=wdGoToFirst)
Debug.print r.start, r.end
或者,如果您想选择结果范围,可以使用
r.Select
但是如果你想设定一个范围
Dim r As Word.Range
Set r = wDoc.Bookmarks("TemplatePage)
是(IMO)更简单,你已经拥有了实际选择它的代码,如果这是你需要的。
答案 1 :(得分:0)
好的,显然GoTo根本不起作用。我在页面,部分,书签上尝试了各种各样的变体,他们要么什么也没做,给出了错误,甚至移到了错误的地方(标题中的选定文字!)
相反,您可以尝试:
wDoc.Bookmarks("TemplatePage").Select
像冠军一样工作。