【发布时间】:2022-01-17 08:33:14
【问题描述】:
目的是使用规则触发脚本,如果创建日期等于今天,则保存电子邮件的附件。接下来,该脚本将从文件夹中删除所有创建日期不同的项目。
我可以运行代码,但它什么也没做。
Public Sub SaveAttachments(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
Dim today As Date 'today's date
Dim adate As Date 'date of attachment
today = Date
sSaveFolder = "filepath"
For Each oAttachment In MItem.Attachments
adate = oAttachment.DateCreated
If DateDiff("d", today, adate) = 0 Then
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
End If
Next oAttachment
Dim objFSO, objFolder, objfile As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(sSaveFolder)
For Each objfile In objFolder.files
If Format(objfile.DateCreated, "DD-MM-YYYY") <> Format(Date, "DD-MM-YYYY") Then
Kill objfile
End If
Next objfile
End Sub
【问题讨论】:
-
你试过调试这个吗?
If块中的语句是否实际执行? -
@TimWilliams,我实际上已经弄清楚了。关键问题是 .DateCreated 方法适用于文件,而不是附件对象。我改用 .Senton 方法,现在一切都按预期工作。我花了太长时间才弄明白。
标签: vba outlook email-attachments