【发布时间】:2021-07-21 08:19:40
【问题描述】:
我的代码考虑了电子邮件的日期与我的阈值。例如,如果我将阈值设置为 2020 年 4 月 1 日,它将把从 2020 年 4 月 1 日到今天的所有电子邮件。
我的代码很慢,因为它从我最旧的电子邮件开始。如何使用最近的电子邮件开始索引?
我使用 items.sort "CreationDate" 在网上找到的代码,true 不起作用,因为它完全删除了日期。
我已经简化了代码:
Sub dateextract()
Dim OutlookApp As Outlook.Application
Dim Outlooknamespace As Namespace
Dim folder As MAPIFolder
Dim subfolder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Long
Dim dates As Date
Dim time As Date
Dim sender As String
Set OutlookApp = New Outlook.Application
Set Outlooknamespace = OutlookApp.GetNamespace("MAPI")
Set folder = Outlooknamespace.GetDefaultFolder(olFolderInbox)
dates = Cells(1, 2).Value
i = 1
For Each OutlookMail In folder.Items
time = OutlookMail.ReceivedTime
If time >= dates Then
'........
【问题讨论】:
-
为什么您的收件箱中有如此多的电子邮件?当然这需要时间。我怀疑收件箱是一个可以使用 SELECT 的数据库。因此 Outlook 需要遍历您拥挤的收件箱中的所有电子邮件。解决方案?清除收件箱并重新开始。另一种方法是导出收件箱并在本地处理所有电子邮件。提示:一天结束时,收件箱是空的!您是否将实体邮件信封存放在实体邮箱中?不!
-
这对我没有帮助。为了我的目的,我需要我的整个收件箱都是可搜索的。这个想法是,如果我可以从最新的电子邮件开始,我可以添加一个 if 语句,如果它超出阈值则结束 for 循环