如何自动修改Word文档日期并每年自动发送该文档?
实现Word文档自动年度发送并更新日期的方案
方案一:VBA脚本 + Windows任务计划程序
这是本地环境下最直接的实现方式,无需额外云服务支持。
1. 给Word文档添加日期定位书签
打开目标Word文档,选中顶部的固定日期文本(比如“June 13th 2024”),点击菜单栏「插入」→「书签」,命名为DocDate(不要用空格或特殊字符),点击「添加」。保存文档后关闭。
2. 编写VBA脚本
打开Word,按Alt + F11打开VBA编辑器,插入新模块,粘贴以下代码:
Sub UpdateDateAndSend() Dim doc As Document Dim outApp As Object Dim outMail As Object Dim sendDate As String ' 生成带序数词的日期格式(默认th) sendDate = Format(Date, "mmmm d""th"" yyyy") ' 替换1st/2nd/3rd的特殊情况 Select Case Day(Date) Case 1, 21, 31 sendDate = Replace(sendDate, "th", "st") Case 2, 22 sendDate = Replace(sendDate, "th", "nd") Case 3, 23 sendDate = Replace(sendDate, "th", "rd") End Select ' 打开目标文档(替换成你的实际文件路径) Set doc = Documents.Open("C:\Files\年度文档.docx") ' 更新书签位置的日期 If doc.Bookmarks.Exists("DocDate") Then doc.Bookmarks("DocDate").Range.Text = sendDate ' 重新添加书签,避免替换后书签丢失 doc.Bookmarks.Add Name:="DocDate", Range:=doc.Bookmarks("DocDate").Range End If ' 保存修改 doc.Save ' 调用Outlook发送邮件 Set outApp = CreateObject("Outlook.Application") Set outMail = outApp.CreateItem(0) With outMail .To = "recipient@example.com" ' 替换成实际收件人邮箱 .Subject = "年度文档:" & sendDate .Body = "请查收更新后的年度文档。" .Attachments.Add doc.FullName .Send ' 直接发送,如需预览改为 .Display End With ' 清理资源 doc.Close SaveChanges:=wdDoNotSaveChanges Set doc = Nothing Set outMail = Nothing Set outApp = Nothing End Sub
注意:
- 替换代码中的文档路径、收件人邮箱等信息
- 确保Outlook已配置好可用的邮箱账号
- 若需调整日期格式,修改
Format(Date, "mmmm d""th"" yyyy")中的格式参数
3. 测试脚本
在VBA编辑器中按F5运行脚本,检查文档日期是否更新、邮件是否正常发送。
4. 设置Windows任务计划自动运行
- 打开「任务计划程序」,点击「创建基本任务」
- 命名任务(比如“年度文档自动发送”),设置触发器为「每年」,选择你需要的发送日期和时间
- 操作选择「启动程序」,程序路径选
WINWORD.EXE的安装路径(通常为C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE,根据Office版本调整) - 添加参数:
/m UpdateDateAndSend /q,其中UpdateDateAndSend是你写的VBA子程序名,/q表示静默启动Word - 完成任务创建,确保任务运行的用户权限足够访问文档和Outlook
方案二:Power Automate(Office 365用户适用)
如果你有Office 365订阅,无需写代码就能实现:
- 创建「计划云流」,设置触发频率为每年
- 添加「获取文件内容」动作,读取存放在OneDrive/SharePoint的目标Word文档
- 添加「修改Word文档」动作,用「替换文本」操作把原日期替换为
utcNow('MMMM d"th" yyyy'),再通过条件判断处理1st/2nd/3rd的特殊格式 - 添加「发送电子邮件(V2)」动作,将修改后的文档作为附件发送
内容的提问来源于stack exchange,提问作者PAH
相关产品推荐
相关产品推荐

