【问题标题】:How to sort emails by date and open the latest email found?如何按日期对电子邮件进行排序并打开找到的最新电子邮件?
【发布时间】:2015-12-03 07:28:21
【问题描述】:

我想知道是否有办法按日期对电子邮件进行排序,然后打开找到的最新电子邮件。

我正在尝试搜索正文中具有唯一标签的电子邮件。为了避免具有相同标签的重复电子邮件,我必须按日期对这些电子邮件进行排序并打开找到的最新电子邮件以便我可以回复它。

【问题讨论】:

  • 什么 Outlook 版本?
  • @Maciej Los。这是 MS Outlook 2010。

标签: vba email outlook


【解决方案1】:

您需要在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

【讨论】:

【解决方案2】:

对于 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

【讨论】:

  • 该代码不适用于 MailItems。没有定义这样的属性。
  • @EugeneAstafiev,代码来自 MSDN,所以它应该可以工作。我确实相信您必须正确定义文件夹和/或必须对其进行排序的属性。
  • 是的,它来了。但它可以应用于任务项,而不是邮件项。
猜你喜欢
  • 1970-01-01
  • 2015-05-17
  • 1970-01-01
  • 2020-07-30
  • 2021-08-29
  • 2015-04-20
  • 2018-03-11
  • 2016-11-23
  • 1970-01-01
相关资源
最近更新 更多