我在这里有一个程序,它在Outlook的Sent Items文件夹中搜索每封电子邮件,直到它在指定的电子邮件中找到标签(URL),打开它并发送回复。
但是我的"已发送邮件"文件夹里有很多邮件,所以每封邮件都要花很多时间来搜索。
我读到AdvancedSearch方法是一种更快的搜索特定邮件的方法。但是我真的不知道它是怎么工作的,所以我需要你们的帮助。
如何在这种类型的程序中使用AdvancedSearch方法?
感谢你们的帮助。
Set olApp = New Outlook.Application
Set olNameSpace = olApp.GetNamespace("MAPI")
Set olFolder = olNameSpace.GetDefaultFolder(olFolderSentMail)
For Each olMail In olFolder.Items
tagLink = Sheets("Data").Cells(rowCount, 6)
If InStr(olMail.HTMLBody, tagLink) <> 0 Then
With olMail.Reply
.Display
.To = sMailTo
.CC = sMailCC
.HTMLBody = mailBody & vbLf & .HTMLBody
.Send
End With
End If
Next olMail
为每个olMail在olFolder。项目
不要遍历文件夹中的所有项。特别是如果你的文件夹里有大量的项目。
相反,您可以考虑使用Items类的Restrict或Find/FindNext方法。您可以在以下文章中找到对它们的深入描述:- 如何:使用Find和FindNext方法从文件夹中检索Outlook邮件项目(c#, VB.NET)
- 如何:使用Restrict方法从文件夹 中检索Outlook邮件项目
当然您可以考虑使用Application类的AdvancedSearch
方法。使用这种方法的主要好处是能够在后台运行搜索并搜索不同/多个文件夹中的项目。阅读更多有关在Outlook中以编程方式进行高级搜索的所有好处:c#, VB。净的文章。
最后,您可能会发现Outlook 2010中的VBA入门文章很有帮助。