Excel 用VBA按电子邮件地址域搜索olFolderSentMail

Excel 用VBA按电子邮件地址域搜索olFolderSentMail,excel,vba,outlook,Excel,Vba,Outlook,我想用VBA在olFolderSentMail文件夹中查找邮件,使用电子邮件地址的域 当我在Outlook中进行高级筛选时,结果就会出来。我从那里得到了sql代码。在VBA中没有结果 例如,我想找到a@kpmg.com, b@kpmg.com两者都在一起。Outlook中只有姓名以a和b的形式出现在WHERO部分。邮件地址隐藏在姓名中 Sub-sentmails() 将objNS设置为Outlook。命名空间:设置objNS=GetNamespace(“MAPI”)Dim 将文件夹设置为Outl

我想用VBA在olFolderSentMail文件夹中查找邮件,使用电子邮件地址的域

当我在Outlook中进行高级筛选时,结果就会出来。我从那里得到了sql代码。在VBA中没有结果

例如,我想找到a@kpmg.com, b@kpmg.com两者都在一起。Outlook中只有姓名以a和b的形式出现在WHERO部分。邮件地址隐藏在姓名中

Sub-sentmails()
将objNS设置为Outlook。命名空间:设置objNS=GetNamespace(“MAPI”)Dim
将文件夹设置为Outlook.MAPIFolder
设置olFolder=objNS.GetDefaultFolder(olFolderSentMail)
filterstr=“@SQL=(”)http://schemas.microsoft.com/mapi/proptag/0x0e04001f""
CI_开始使用“毕马威”或“”http://schemas.microsoft.com/mapi/proptag/0x0e03001f“CI_以“毕马威”开始”
设置arama=olFolder.Items.Restrict(filterstr)
端接头

首先,您不是在搜索后缀(
*kpmg.com
),而是在搜索前缀(
kpmg*
)。 其次,
To
/
CC
/
BCC
属性甚至可能不包含电子邮件地址,只包含名称

在扩展MAPI级别(C++或Delphi)上,可以对邮件收件人创建子限制,但Outlook对象模型不会公开它

如果使用是一个选项,则可以使用类似于以下脚本的脚本:

Set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
Set folder = Session.GetDefaultFolder(olFolderSentMail)
set restItems = folder.Items.Restrict("Recipients LIKE '%kpmg.com%' ")
MsgBox restItems.Count

这个问题不容易理解,这可能就是为什么会有反对票。这似乎是关于SQL成功与VBA失败的已知问题。请参阅,当我搜索outlook时,结果出来了,我在vba中使用outlook中的sql查询,结果没有出来。看来我理解了这个问题。链接似乎是一致的,在这种情况下,VBA会产生不正确的结果。谢谢你。我会尝试你的建议并在这里分享情况。没有赎回安装就不能开发解决方案吗?你是说没有赎回吗?或者在没有安装程序的情况下使用赎回?在后一种情况下,安装只需将dll复制到任何文件夹,并使用regsvr32注册它,然后将dll文件发送给我。没有解决方案吗?你可以在扩展的MAPI中创建一个限制,但是你只能在C++或Delphi中这样做,VB不会让你使用扩展的MAPI。兑换可从以下网址下载: