Restrict()
, похоже, не принимает значение даты, если оно указано снаружи.Outlook. Метод ограничения не работает с датой
Public Sub EBS()
Dim oMail As MailItem
Dim sPath As String
Dim dtDate As Date
Dim dtRecDate As Date
Dim sName As String
Dim oNameSpace As Outlook.NameSpace
Dim oInboxFolder As Outlook.Folder
Dim oSentFolder As Outlook.Folder
Dim i As Long
Set oNameSpace = Application.GetNamespace("MAPI")
Set oInboxFolder = oNameSpace.GetDefaultFolder(olFolderInbox)
Set oSentFolder = oNameSpace.GetDefaultFolder(olFolderSentMail)
dtRecDate = DateAdd("d", -180, Now)
Set setItems = oInboxFolder.Items
Set RestrictedItems = setItems.Restrict("[ReceivedTime] < dtRecDate AND [MessageClass] = 'IPM.Note'")
For i = RestrictedItems.Count To 1 Step -1
Set oMail = RestrictedItems.item(i)
sName = oMail.Subject
dtDate = oMail.ReceivedTime
sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, vbUseSystem) & Format(dtDate, "_hhnnss", vbUseSystemDayOfWeek, vbUseSystem) & "_" & sName & ".msg"
sName = Left(sName, 256)
sPath = "C:\ARCHIVE\OUTLOOK\Inbox\"
Debug.Print dtRecDate
oMail.SaveAs sPath & sName, olMSG
oMail.Delete
Next i
End Sub
Ограничение работает, когда, например, '2014/06/13' используется вместо dtRecDate
.
Когда используется dtRecDate
, он не ограничивает товар.
Не могли бы вы помочь?