【发布时间】:2019-05-10 04:13:29
【问题描述】:
我想在 Outlook 中删除文件夹 DSP 报告中超过 1 天的项目,我被要求使用 vba 代码执行此任务。
现在,代码运行顺利,没有错误,但没有删除任何内容,昨天和今天在我运行代码后收到的邮件。我使用 F8 进行故障排除,但仍然没有错误。
Sub DSP_Report_Deletion()
'''''''''''''''''''''''''''''''''''''''''''''
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim oItems As Outlook.Items
Dim i
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("DSP Reports")
Set oItems = olFolder.Items
For i = oItems.Count To 1 Step -1
If DateDiff("d", oItems.Item(i).SentOn, Now) > 1 Then
oItems.Item(i).Delete
End If
Next
'tidy up Outlook
Set olFolder = Nothing
Set oNs = Nothing
Set oOutlook = Nothing
End Sub
【问题讨论】:
-
嗯,你的代码对我来说工作正常。所有 2 天或更早的电子邮件都将被删除
-
设置 Outlook 规则来执行此操作会更容易,特别是如果它必须每天运行。
-
我现在知道为什么了,我应该使用
>=1来包含 1 天前的项目。感谢您的意见。