如何跳转到Word-VBA中的书签并插入文本?
问题描述:
我想用一个非常简单的单词宏创建一个Word文档。该宏将搜索我放入文本中的书签,然后在该位置添加一个日期为2周的日期。如何跳转到Word-VBA中的书签并插入文本?
但是,当我从模板创建一个新文档时,我总是收到书签找不到。我经历过很多次,有时书签在那里,有时候在那里,但不允许你点击“转到”。
我怎样才能使它工作?我已经为Document_New()
事件添加了一小段代码,但该事件不断报告书签未找到。
因为我的web服务器无法处理.dotm扩展名,所以我在rar文件中有文档。 Document
我该如何做到这一点,以便在使用此模板生成新文档时,新文档的日期会提前2周提前放置在2个粗体部分之间?
Sub Two_Weeks_Ahead()
''# Two_Weeks_Ahead Makro
Selection.GoTo What:=wdGoToBookmark, Name:="TwoWeeks"
With ActiveDocument.Bookmarks
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
Dim dt As Date
dt = DateAdd("d", 14, DateTime.Now)
Selection.TypeText Text:=Format(dt, "yyyy-MM-dd")
End Sub
Private Sub Document_New()
Selection.GoTo What:=wdGoToBookmark, Name:="TwoWeeks"
With ActiveDocument.Bookmarks
.DefaultSorting = wdSortByName
.ShowHidden = False
End With
Dim dt As Date
dt = DateAdd("d", 14, DateTime.Now)
Selection.TypeText Text:=Format(dt, "yyyy-MM-dd")
End Sub
答
这可能是因为在代码中使用了ActiveDocument
。调用宏的文档可能仍然是ActiveDocument
,所以它不会找到任何书签。以下是我如何从调用宏的文档/模板中完成工作。
Sub AddTwoWeeks()
Dim d As Document
Set d = Documents.Add("C:\Users\Me\Desktop\Title.dotx")
Dim dt As Date
dt = DateAdd("d", 14, DateTime.Now)
Dim b As Bookmark
Set b = d.Bookmarks("TwoWeeks")
b.Range.Text = Format(dt, "yyyy-MM-dd")
End Sub
你能直接将代码复制到你的答案吗? – 2010-04-27 22:46:14