根据日期和时间导入电子邮件数据

Posted

技术标签:

【中文标题】根据日期和时间导入电子邮件数据【英文标题】:Importing email data based on date and time 【发布时间】:2019-12-31 15:12:08 【问题描述】:

我正在尝试从指定日期和时间的 Outlook 收件箱中导入数据。

我的问题是宏从它多次看到的第一封电子邮件中提取数据。

它对后续的电子邮件效果很好。如何只从每封电子邮件中提取一次数据?

代码基本上是我在网上找到的一个模板。

我尝试让循环检查重复项并在发现重复项时清除内容,但出现类型不匹配错误。

Dim OUTAPPLICATION As Outlook.Application
Dim OUTNAMESPACE As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer
Dim Time As Date

Set OUTAPPLICATION = New Outlook.Application
Set OUTNAMESPACE = OUTAPPLICATION.GetNamespace("MAPI")
Set Folder = OUTNAMESPACE.GetDefaultFolder(olFolderInbox)

i = 1

For Each OutlookMail In Folder.Items
    If OutlookMail.ReceivedTime >= range("Date").Value Then
        range("Footprints").Offset(i, 0).Value = OutlookMail.Subject
        range("Type").Offset(i, 0).Value = OutlookMail.SenderName
        range("ETA").Offset(i, 0).Value = OutlookMail.ReceivedTime
        range("SH").Offset(i, 0).Value = OutlookMail.Body
        range("Status").Offset(i, 0).Value = OutlookMail.CC
    
        i = i + 1
    
    End If
Next OutlookMail

程序需要很长时间才能运行。有没有办法让它跑得更快?

【问题讨论】:

我运行了你的代码,它似乎工作得很好,没有重复。 为了提高效率,请尝试使用 Restrict 方法过滤您的项目,此处描述为https://docs.microsoft.com/en-us/office/vba/api/outlook.items.restrict 【参考方案1】:

在结束代码之前添加此代码

Set Folder = Nothing
Set OUTNAMESPACE = Nothing
Set  OUTAPPLICATION= Nothing

【讨论】:

以上是关于根据日期和时间导入电子邮件数据的主要内容,如果未能解决你的问题,请参考以下文章

如何根据日期时间约束从另一个数据框中提取行?

由于日期格式,将数据从 txt 文件导入 IBM netezza SQL 数据库时出错

MySQL 中的 Pivot - 根据日期时间列显示第一个和最后一个值

如何在将导入 Access 的 Excel 中转换此文本日期?

Excel格式数据如何快速导入MySQL数据库 ,Excel日期数据如何成功导入MySQL

如何根据特定日期获取最后修改的文件并导入python脚本[重复]