Vba Application.AdvancedSearch语法问题

Vba Application.AdvancedSearch语法问题,vba,outlook,Vba,Outlook,我想知道如何修复此Outlook高级搜索类似SQL的条件字符串: filterStr = "@SQL=""urn:schemas:httpmail:subject"" = """ & _ EmailName & """ AND ""urn:schemas:httpmail:date"" >= """ & _ TDateUTC & """ AND ""urn:schemas:httpmail:date"" <

我想知道如何修复此Outlook高级搜索类似SQL的条件字符串:

filterStr = "@SQL=""urn:schemas:httpmail:subject"" = """ & _
            EmailName & """ AND ""urn:schemas:httpmail:date"" >= """ & _
            TDateUTC & """ AND ""urn:schemas:httpmail:date"" <= """ & _
            TDateUTCEOD & """"
filterStr=“@SQL=”“urn:schemas:httpmail:subject”“=”&_
EmailName&“和”urn:schemas:httpmail:date“>=”和_
TDateUTC&“和”urn:schemas:httpmail:date“以编程方式执行高级搜索的示例显示了正确的语法:

Const strF As String=“urn:schemas:mailheader:subject='Test'”
注意:

  • urn:schemas:foo:bar
    部分没有被双引号包围
  • 字段值被单引号包围
  • MSDN没有提到
    @SQL=
    前缀
这意味着适当的条件字符串如下所示:

filterStr=“urn:schemas:httpmail:subject=”&EmailName&_
“'和urn:schemas:httpmail:date>=”&TDateUTC&_
“'和urn:schemas:httpmail:date=”&CStr(TDateUTC)和_

“'和urn:schemas:httpmail:date不确定这其中的大部分含义,抱歉。我基本上是在尝试过滤Outlook收件箱以显示两次之间的项目,然后按电子邮件名称搜索,获取SentOn日期,然后将SentOn日期粘贴到另一个电子表格。这是因为每天都有同名的电子邮件,我需要为输入的日期复制SentOn日期。现在我的代码只接收最近一封电子邮件的SentOn datetime;我正在尝试使用AdvancedSearch和SQL筛选我的收件箱,但我的语法错误。好吧,VBA中的AdvancedSearch不能接受SQL以外的任何内容,这就是我将其标记为SQL的原因。我还标记了VBA和Excel VBA。您使用的是Outlook对象模型,“Excel”与“SQL”一样不相关。我编辑了你的问题,从标题中删除了标记,更准确地命名了事物,并使用了适合所涉及API的标记。谢谢,效果很好。使用:filterStr=“urn:schemas:httpmail:subject=”&EmailName&“;urn:schemas:httpmail:date>=”&TDateUTC&“;urn:schemas:httpmail:date