【发布时间】:2013-01-01 04:44:09
【问题描述】:
问题: 在我看来 AddressList 没有内置过滤器功能,例如 C# DataTable (DatTableObject.Select(filter criteria)),我正在寻找一种方法这个。
我正在访问的全球地址列表有大约一百万个条目,我需要搜索它多达 1000 次。
我正在使用交换用户名来查找人们的电子邮件,使用以下代码:
Set olApp = CreateObject("Outlook.Application")
Set myNamespace = olApp.GetNamespace("MAPI")
Set aList = myNamespace.AddressLists.Item("Global Address List")
Set aEntry = aList.AddressEntries("" + ExchangeName + "")
Set exUser = aEntry.GetExchangeUser
但它只检索我一个 AddressEntry,当我有几个具有相同 Exchange 名称的人时,这是一个问题 - 经常发生。
问题:当我在 Outlook 中搜索全局地址列表时,所有内容都按字母顺序排序并且速度很快,所有匹配项都以我输入的字符串开头。我怎样才能获得VBA 中的类似集合?
【问题讨论】:
-
某事告诉我 Outlook 地址列表应该可以使用 Windows 搜索进行查询。不确定这是否正确,或者您是否可以使用 VBA 中的 Windows 搜索查询,我必须承认。不过,如果您想看一下,基本文档位于msdn.microsoft.com/en-us/library/windows/desktop/…。不过,您需要一个 COM 处理程序来处理地址列表。