gpt4 book ai didi

vba - 如何在 Word-VBA 中跳转到书签并插入文本?

转载 作者:行者123 更新时间:2023-12-04 08:46:30 25 4
gpt4 key购买 nike

我正在尝试使用一个非常简单的 word 宏创建一个 Word 文档。该宏会搜索我已放置在文本中的书签,然后在该位置添加一个 future 2 周的日期。

但是当我从模板创建一个新文档时,我一直找不到书签。我已经经历了很多次,有时书签在那里,有时它在那里但不允许您单击“转到”。

我怎样才能让它工作?我在 Document_New() 中添加了一小段代码事件,但不断报告找不到书签。

由于我的网络服务器无法处理 .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

关于vba - 如何在 Word-VBA 中跳转到书签并插入文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2725550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com