我想在我当前的Outlook文件夹中搜索主题为"订单14567"的电子邮件。
以下代码中出现错误(438-对象不支持此属性或方法。):
Set objSch = Application.AdvancedSearch(scope:=strS, _
Filter:=strF, Tag:=strTag)
VBA代码:
Sub SearchInboxFolder()
'Searches the Inbox
Dim objSch As Search
Const strF As String = "urn:schemas:mailheader:subject = 'order 14567'"
Const strS As String = "Inbox"
Const strTag As String = "SubjectSearch"
Set objSch = Application.AdvancedSearch(scope:=strS, _
Filter:=strF, Tag:=strTag)
End Sub
看起来Store的IsInstantSearchEnabled属性返回false,即商店的即时搜索被关闭。在这种情况下,您需要使用如下搜索字符串:
"urn:schemas:mailheader:subject like '%order 14567%'"
您可以在MSDN的"使用查询关键字筛选项目"部分中阅读有关筛选字符串的信息。
此外,您可能会发现Items类的find/FindNext或Restrict方法很有用。它们在以下文章中有详细描述:
- 以编程方式在Outlook中进行高级搜索:C#、VB.NET
- 如何:使用Find和FindNext方法从文件夹中检索Outlook邮件项目(C#、VB.NET)
- 如何:使用Restrict方法从文件夹中检索Outlook邮件项目