我正在尝试使用非常简单的Word宏创建一个Word文档。该宏搜索我放置在文本中的书签,然后在该位置添加一个未来 2 周后的日期。
但是,当我从模板创建新文档时,我不断收到找不到书签的信息。我已经浏览过很多次了,有时书签在那里,有时它在那里但不允许您单击“转到”。
我怎样才能让它发挥作用?我在其中添加了一小段代码Document_New()
事件但不断报告找不到书签.
我的文档位于 rar 文件中,因为我的网络服务器无法处理 .dotm 扩展名。Document http://pafo.net/Garageplats.rar
我怎样才能做到这一点,以便当从此模板生成新文档时,新文档的日期(提前 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)