我的收件箱中有数百封邮件。它们可以有数十个类别(“AA”、“BB”、“CC”、“DD”等)的任意组合,这些类别可以按任何顺序分配。
我想仅使用
.Items.Restrict
来选择邮件,以过滤具有“AA”且不具有“BB”的邮件,无论是否有其他类别。
我试图避免循环所有邮件来检查
.categories
文本字符串,这非常慢。
我尝试过类似的事情:
sFilter = "[Categories] = 'AA' And Not([Categories] = 'BB')"
Set oOlResults = oOlInb.Items.Restrict(sFilter)
不包括类别 BB 的所有可能组合。
sfilter = "[Categories] = 'AA' OR [Categories] = 'AA, CC' OR [Categories] = 'CC, AA'"
为了帮助遇到同样问题的人,我将发布我刚刚发现的内容:这可以使用 DASL 过滤字符串来解决。对于这个例子:
sFilter = "@SQL=""urn:schemas-microsoft-com:office:office#Keywords"" like 'AA' AND NOT (""urn:schemas-microsoft-com:office:office#Keywords"" like 'BB')"