Vba 按日期限制Outlook项目

Vba 按日期限制Outlook项目,vba,outlook,Vba,Outlook,我有一个Outlook宏,它按日期过滤电子邮件对象,并根据数组返回项目 今天的过滤器如下所示: sfilter = "[ReceivedTime]>=""&Date()12:00am&""" Set myItems = myNewFolder.Items.Restrict(sfilter) sFilter是一个字符串,它按预期返回今天的项目 我正在尝试过滤昨天收到的电子邮件 以下是我的尝试 sfilter = "[ReceivedTime]>=""&Date

我有一个Outlook宏,它按日期过滤电子邮件对象,并根据数组返回项目

今天的过滤器如下所示:

sfilter = "[ReceivedTime]>=""&Date()12:00am&"""
Set myItems = myNewFolder.Items.Restrict(sfilter)
sFilter是一个字符串,它按预期返回今天的项目

我正在尝试过滤昨天收到的电子邮件

以下是我的尝试

sfilter = "[ReceivedTime]>=""&Date(-1) 12:00am&"" AND [ReceivedTime]<= ""&Date() 12:00am&"" "
tfilter = Format(DateAdd("d", -1, Date), "mm/dd/yyyy")
rFilter = Format(DateAdd("d", 0, Date), "mm/dd/yyyy")

sfilter=“[ReceivedTime]>=”&Date(-1)12:00am&“和[ReceivedTime]您可以找到昨天的邮件,其中有两个单独的邮件

Private Sub-emailday()
Dim oOlInb As文件夹
作为对象的Dim oOlItm
将结果设置为对象
我想我会坚持多久
作为字符串的Dim sFilter
将sFilter2设置为字符串
设置oOlInb=Session.GetDefaultFolder(olFolderInbox)
'过滤器最近-范围的下限
sFilter=“[ReceivedTime]>”&格式(日期-1,“ddd HH:NN”)&“
调试。打印vbCr和sFilter
设置oOlResults=oOlInb.Items.Restrict(sFilter)
Debug.Print oOlResults.count&“项”
如果oOlResults.count>0,则
对于i=1到o.results.count
设置oOlItm=oOlResults(i)
Debug.Print oOlItm.Subject&“-”&oOlItm.ReceivedTime
接下来我
如果结束
'过滤器范围-上限

sFilter2=“[ReceivedTime]昨天日期可按如下方式过滤

oOlResults.Restrict("@SQL=%yesterday(""urn:schemas:httpmail:datereceived"")%")
今天或这个月也一样

 oOlResults.Restrict("@SQL=%today(""urn:schemas:httpmail:datereceived"")%")
 oOlResults.Restrict("@SQL=%thismonth(""urn:schemas:httpmail:datereceived"")%")

更多信息

谢谢!过滤正在工作,但是否有办法将时间包含在过滤器中?您提供的代码似乎也从今天返回了一些项目。这是否意味着它返回的项目<今天@当前时间?我尝试以与上面相同的方式添加时间,但outlook似乎不喜欢这样,而且似乎ReceivedTime=&Date-1不返回任何项目。我猜这是由于当前使用的时间。邮件项目的“发送时间”属性是否可以避免此问题?()似乎比最初想象的要复杂一些。在筛选器中添加了日期格式。我想我比以前考得好一点了。谢谢!它现在工作得很好。再问一个简单的问题。如果我想改变时间,我该怎么做呢?我需要使用dateadd还是需要输入一个包含所需时间的字符串?您可以在这里看到时间是如何添加的sFilter=“[ReceivedTime]>”&format(Date-1&“11:30am”,“ddddddd HH:NN ampm”)&“您能帮我写最近的帖子吗?
 oOlResults.Restrict("@SQL=%today(""urn:schemas:httpmail:datereceived"")%")
 oOlResults.Restrict("@SQL=%thismonth(""urn:schemas:httpmail:datereceived"")%")