Excel 按附件文件名搜索outlook文件夹

Excel 按附件文件名搜索outlook文件夹,excel,vba,outlook,Excel,Vba,Outlook,我目前正在使用Outlook 2010,通过使用“更多”按钮并添加附件,我目前可以在Outlook中手动搜索文件夹:是,附件包含:我在其中输入文件名以查找电子邮件并获取发送时的时间戳。我有数以千计的附件,我需要这样做,我想自动化的过程,但我是一个outlook vba noobie和我不知道的命令,以执行附件名称搜索,我已经尝试谷歌这一点,但没有任何帮助将不胜感激谢谢 您可以使用Restrict 示例如下: 结合: attName = MsgAttach.Item(attachmentNumbe

我目前正在使用Outlook 2010,通过使用“更多”按钮并添加附件,我目前可以在Outlook中手动搜索文件夹:是,附件包含:我在其中输入文件名以查找电子邮件并获取发送时的时间戳。我有数以千计的附件,我需要这样做,我想自动化的过程,但我是一个outlook vba noobie和我不知道的命令,以执行附件名称搜索,我已经尝试谷歌这一点,但没有任何帮助将不胜感激谢谢

您可以使用Restrict

示例如下:

结合:

attName = MsgAttach.Item(attachmentNumber)

If InStr(attName, "search string here") Then
    Debug.Print "- " & attName
End If

Outlook对象模型不允许您搜索具有特定附件文件名的项目。您可以显式循环遍历文件夹中的所有项目并检查附件文件名,但这将是非常低效的

在扩展MAPI级别(C++或Delphi)上,可以对附件创建子限制。如果使用是一个选项,则允许在中指定附件。查找/限制:

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set vFolder = Session.GetFolderFromID(Application.ActiveExplorer.CurrentFolder.EntryID)
set vItems = vFolder.Items
set vMsg = vItems.Find("Attachments LIKE '%.zip%' ")
while not (vMsg Is Nothing)
  MsgBox vMsg.Subject
  set vMsg = vItems.FindNext
wend

这将返回包含附件的项目,但您将无法按附件文件名搜索这是一个编程问题吗?是的,因为我要求提供特定代码,允许我按附件名搜索整个outlook文件夹,以便获取该电子邮件的时间戳,然后,我现有的代码将根据文件名使用这些值更新数据库,并且有数千行项目。我已经自动化了剩下的过程,我只需要这些时间戳的附件名称在了望谢谢你的答复,我很感激。我认为这是朝着正确的方向迈出的一步,我该如何将其融入到我已经编写的代码中呢?例如,将其放入excel模块。到目前为止,如果我在outlook中创建一个模块并尝试在新的子系统中运行它,我会在.mapiobject上收到一个错误,表示找不到方法或数据成员。我假定有一些预先请求的站点可以使此代码正常工作。实际上,我刚刚在microsoft网站上阅读了您的一个回答线程,我将会话更改为rsession(它工作正常,谢谢您),因为我正在outlook中测试它,然后将其放入excel宏中。excel宏中是否需要更改任何内容,即是“会话”还是“rsesession”?是的,在excel中,将会话更改为rsesession可能是一个好主意,以避免与excel VBA内部变量冲突。非常感谢您的帮助,现在我可以在outlook中执行此操作了。代码的真实部分必须在我的excel代码中,我已经在excel中尝试了session和rsession,但都不允许此代码工作。我仍然收到.mapiobject错误(找不到方法或数据成员)。这是什么原因造成的?我已启用了outlook和MAPI COM库。很抱歉,“rSession.MAPIOBJECT=Application.Session.MAPIOBJECT”行上的错误是对象不支持属性或方法
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set vFolder = Session.GetFolderFromID(Application.ActiveExplorer.CurrentFolder.EntryID)
set vItems = vFolder.Items
set vMsg = vItems.Find("Attachments LIKE '%.zip%' ")
while not (vMsg Is Nothing)
  MsgBox vMsg.Subject
  set vMsg = vItems.FindNext
wend