在MS VBA中为邮件主题添加每周最后一个周日动态日期咨询
VBA 每周自动发邮件动态插入上周日主题日期实现方案
核心修改逻辑
替换原固定主题的代码行,通过VBA日期函数自动计算最近一个周日的日期,格式化后拼接进主题,每次运行宏都会自动更新日期,无需手动调整。
日期计算使用Weekday函数匹配周日为一周首日的规则,Date - Weekday(Date, vbSunday) + 1公式可以适配任意运行时间,自动返回当前日期前最近的周日日期。
仅修改主题行的代码(保留原变量名无需调整其他内容)
将原有emailItem.Subject = "Training Report - DD-MM-YYYY"替换为以下代码即可:
emailItem.Subject = "Training Report - " & Format(Date - Weekday(Date, vbSunday) + 1, "DD-MM-YYYY")
全代码中文翻译版本
如果需要将代码整体翻译为中文方便维护,可使用以下版本:
Option Explicit Sub 发送带附件的邮件() Dim 邮件应用 As Object Dim 邮件实例 As Object Set 邮件应用 = CreateObject("Outlook.Application") Set 邮件实例 = 邮件应用.CreateItem(0) ' 构建邮件内容 邮件实例.To = Range("A2").Value 邮件实例.CC = Range("B2").Value ' 主题自动拼接最近周日日期,格式为DD-MM-YYYY 邮件实例.Subject = "培训报告 - " & Format(Date - Weekday(Date, vbSunday) + 1, "DD-MM-YYYY")
内容的提问来源于stack exchange,提问作者QMAN
相关产品推荐
相关产品推荐

