![](/img/trans.png)
[英]Extract details from Outlook emails using Excel VBA based on word in subject and date
[英]Excel VBA Outlook - Subject Contains Is Not Finding Reply Emails
如何获得以下 Excel VBA 代码以返回主题包含“时间表 06/19/20”的所有电子邮件?
下面的代码确实返回“Timesheet 06/19/20 - Name (EmpId)”。 但是,它不会返回“[EXTERNAL] RE: Timesheet 06/19/20 - Name (EmpId)”。 我究竟做错了什么?
Public Function Test()
Dim Folder As Outlook.Folder, MailItems As Outlook.Items, MailItem As Outlook.MailItem
Dim Filter As String
Filter = "@SQL=urn:schemas:httpmail:subject" & "" & " ci_phrasematch 'Timesheet 06/19/20'"
Set Folder = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set MailItems = Folder.Items.Restrict(Filter)
For Each MailItem In MailItems
Debug.Print MailItem.Subject
Next MailItem
End Function
请注意,如果我将过滤器更改为搜索“[EXTERNAL] RE: Timesheet 06/19/20”,它会找到 email。 显然这不适用于我的解决方案,因为我需要搜索“Timesheet 06/19/20”来容纳原始、转发和回复电子邮件。
感谢您提供的任何帮助!
不知道为什么,但主题为“无法交付:时间表 06/19/20 - 名称(EmpId)”的 email 引发错误,导致代码提前退出 for 循环。 下面的代码修复了抛出的错误。
也许有人解释了为什么上述主题更喜欢循环的索引计数?
Public Function Test()
Dim Folder As Outlook.Folder, MailItems As Outlook.Items, MailItem As Outlook.MailItem
Dim Filter As String, idx As Long
Filter = "@SQL=urn:schemas:httpmail:subject" & "" & " ci_phrasematch 'Timesheet 06/19/20'"
Set Folder = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set MailItems = Folder.Items.Restrict(Filter)
For idx = 1 To MailItems.Count
Debug.Print MailItems(idx).Subject
Next idx
End Function
您需要记住, Items
集合可能包含不同类型的项目,而不仅仅是邮件项目。 因此,最好将项目定义为 object 并在运行时检查项目的类型,然后再访问特定于特定项目类型的任何属性或方法。 例如:
Public Function Test()
Dim Folder As Outlook.Folder, MailItems As Outlook.Items, item As Object
Dim Filter As String
Filter = "@SQL=urn:schemas:httpmail:subject" & "" & " ci_phrasematch 'Timesheet 06/19/20'"
Set Folder = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
Set MailItems = Folder.Items.Restrict(Filter)
For Each item In MailItems
Debug.Print TypeName(item)
Next item
End Function
在如何:使用限制方法从文件夹文章中检索 Outlook 邮件项目中阅读有关Restrict
方法的更多信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.