You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自动修改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任务计划自动运行

  1. 打开「任务计划程序」,点击「创建基本任务」
  2. 命名任务(比如“年度文档自动发送”),设置触发器为「每年」,选择你需要的发送日期和时间
  3. 操作选择「启动程序」,程序路径选WINWORD.EXE的安装路径(通常为C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE,根据Office版本调整)
  4. 添加参数:/m UpdateDateAndSend /q,其中UpdateDateAndSend是你写的VBA子程序名,/q表示静默启动Word
  5. 完成任务创建,确保任务运行的用户权限足够访问文档和Outlook

方案二:Power Automate(Office 365用户适用)

如果你有Office 365订阅,无需写代码就能实现:

  • 创建「计划云流」,设置触发频率为每年
  • 添加「获取文件内容」动作,读取存放在OneDrive/SharePoint的目标Word文档
  • 添加「修改Word文档」动作,用「替换文本」操作把原日期替换为utcNow('MMMM d"th" yyyy'),再通过条件判断处理1st/2nd/3rd的特殊格式
  • 添加「发送电子邮件(V2)」动作,将修改后的文档作为附件发送

内容的提问来源于stack exchange,提问作者PAH

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 15:10:10