我正在創建一個 VBA 宏,它將在每周三向我的通訊組串列發送電子郵件。
我想知道是否有辦法添加動態自定義日期,當我打開通訊組串列時每周更新?
我想添加自定義日期的部分在這里:emailItem.Subject = "Training Report - DD-MM-YYYY"
我希望日期是每周的最后一個星期日。
非常感謝您的幫助!
這是我的代碼:
Option Explicit
Sub Send_Email_With_Attachment()
Dim emailApplication As Object
Dim emailItem As Object
Set emailApplication = CreateObject("Outlook.Application")
Set emailItem = emailApplication.CreateItem(0)
'Now build the email.
emailItem.To = Range("A2").Value
emailItem.CC = Range("B2").Value
emailItem.Subject = "Training Report - DD-MM-YYYY"
uj5u.com熱心網友回復:
編輯 我可能誤解了你。如果您需要最后一個星期日而不是下一個星期日,則只需將代碼的 nextSunday 部分替換為:
Dim lastSunday as Date
lastSunday = DateAdd("d", 1 - Weekday(Now), Now)
函式Weekday回傳一個整數,表示提供的日期引數的星期幾。它回傳的值如下:
- 星期日或 (vbSunday)
- 星期一或 (vbMonday)
- 星期二 (vbTuesday)
等等。因此,對于今天(23.11.2021),星期二函式將回傳數字 3。
函式DateAdd在我們的例子中添加,因為第一個引數“d”到提供日期的天數。
我們使用的最后一個函式是Format,它根據提供的日期和格式“dd-MM-yyyy”回傳一個字串表示
因此,設定主題的代碼部分應如下所示:
...
Dim nextSunday as Date
nextSunday = DateAdd("d", -Weekday(Now) 8, Now)
emailItem.Subject = "Training Report - " & Format(nextSunday, "dd-MM-yyyy")
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/364862.html
標籤:vba
上一篇:過濾范圍復制粘貼值并創建新作業表
下一篇:文本到列-逗號問題
