【发布时间】:2015-12-03 07:28:21
【问题描述】:
我想知道是否有办法按日期对电子邮件进行排序,然后打开找到的最新电子邮件。
我正在尝试搜索正文中具有唯一标签的电子邮件。为了避免具有相同标签的重复电子邮件,我必须按日期对这些电子邮件进行排序并打开找到的最新电子邮件以便我可以回复它。
【问题讨论】:
-
什么 Outlook 版本?
-
@Maciej Los。这是 MS Outlook 2010。
我想知道是否有办法按日期对电子邮件进行排序,然后打开找到的最新电子邮件。
我正在尝试搜索正文中具有唯一标签的电子邮件。为了避免具有相同标签的重复电子邮件,我必须按日期对这些电子邮件进行排序并打开找到的最新电子邮件以便我可以回复它。
【问题讨论】:
您需要在ReceivedTime 属性上发送Sort 电子邮件,该属性返回一个日期,指示收到该项目的日期和时间。
Sub SortByDate()
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.Folder
Dim myItem As Outlook.MailItem
Dim myItems As Outlook.Items
Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myItems = myFolder.Items
myItems.Sort "[ReceivedTime]"
For Each myItem In myItems
MsgBox myItem.Subject & " ---- " & myItem.ReceivedTime
Next myItem
End Sub
【讨论】:
对于 MS Outlook 2010 及更高版本,请使用 Items.Sort 方法。
Sub SortByDueDate()
Dim myNameSpace As Outlook.NameSpace
Dim myFolder As Outlook.Folder
Dim myItem As Outlook.TaskItem
Dim myItems As Outlook.Items
Set myNameSpace = Application.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderTasks)
Set myItems = myFolder.Items
myItems.Sort "[DueDate]", False
For Each myItem In myItems
MsgBox myItem.Subject & "-- " & myItem.DueDate
Next myItem
End Sub
对于以前的版本,请参阅:Sorting Items in a Folder
【讨论】: