Удалите элементы в папке в Outlook старше одного дня - PullRequest
1 голос
/ 09 мая 2019

Я хочу удалить элементы, возраст которых превышает 1 день, в папке «Отчеты DSP» в Outlook, и меня просят выполнить эту задачу с использованием кодов 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

enter image description here

1 Ответ

0 голосов
/ 09 мая 2019
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
...