在Folder.GetTable中传递日期(" [SentOn] = date")

时间:2018-02-01 11:51:43

标签: vba outlook outlook-vba

我正在尝试从邮件项中检索电子邮件SentOn日期。但是,当我想要传递给字符串的Date格式时,我不确定语法是如何工作的。我试过#34;#"和"'"在字符串之前和之后它仍然不起作用。这是我的代码:

Dim justDate As Date
Set objTable = Folder.GetTable("[SentOn]= *" & justDate & "*") 

2 个答案:

答案 0 :(得分:0)

使用日期时不要使用“=” - 由于舍入错误,比较将始终为false。始终使用范围((SentOn> v1)和(SentOn< v2))。

答案 1 :(得分:0)

虽然日期和时间通常以日期格式存储,但Outlook对象模型方法要求将日期和时间转换为字符串表示形式。要确保将日期格式设置为Outlook预期,请使用Format功能。例如:

Sub DemoFindNext() 
 Dim myNameSpace As Outlook.NameSpace 
 Dim tdystart As Date 
 Dim tdyend As Date 
 Dim myAppointments As Outlook.Items 
 Dim currentAppointment As Outlook.AppointmentItem 

 Set myNameSpace = Application.GetNamespace("MAPI") 
 tdystart = VBA.Format(Now, "Short Date") 
 tdyend = VBA.Format(Now + 1, "Short Date") 
 Set myAppointments = myNameSpace.GetDefaultFolder(olFolderCalendar).Items 
 Set currentAppointment = myAppointments.Find("[Start] >= """ &; tdystart &; 
 """ and [Start] <= """ &; tdyend &; """") 
 While TypeName(currentAppointment) <> "Nothing" 
  MsgBox currentAppointment.Subject 
  Set currentAppointment = myAppointments.FindNext 
 Wend 
End Sub