Vba Outlook AddressEntry属性不包括索引号

Vba Outlook AddressEntry属性不包括索引号,vba,outlook,Vba,Outlook,我正在从我的全球交换地址簿中读取一些数据 这适用于没有重复项的名称 当我发现一个名字在那里很多次,我需要循环通过整个地址簿 但我更愿意尝试从AddressEntry对象中获取我要查找的名称的第一个索引,例如“Peter name”,并使用此索引循环下一个AddressEntries。如果“Peter Name”的索引是“1”,那么我可以循环遍历条目2到条目10 但是我找不到索引属性 也许你们可以告诉我AddressEntry对象是否有隐藏索引,或者我是否需要重新考虑查找同名人员。没有内在索引属性

我正在从我的全球交换地址簿中读取一些数据

这适用于没有重复项的名称

当我发现一个名字在那里很多次,我需要循环通过整个地址簿

但我更愿意尝试从AddressEntry对象中获取我要查找的名称的第一个索引,例如“Peter name”,并使用此索引循环下一个AddressEntries。如果“Peter Name”的索引是“1”,那么我可以循环遍历条目2到条目10

但是我找不到索引属性


也许你们可以告诉我AddressEntry对象是否有隐藏索引,或者我是否需要重新考虑查找同名人员。

没有内在索引属性,因为没有内在排序顺序。有
EntryID
属性,但它不是索引,而是唯一的id

如果你想处理所有重复的名字,循环遍历所有条目是一个坏主意——有些GAL包含成千上万个条目,甚至可能根本不让你遍历它们

在扩展MAPI(C++或Delphi)中,可以使用
PR\ANR
限制来获取重复项列表,类似于在Outlook中解析重复名称时Outlook显示的内容。但是,Outlook对象模型中未公开该功能。如果选择使用(我是其作者),则可以使用。
ResolveNameEx
方法:

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set AdrrEntries = Session.AddressBook.GAL.ResolveNameEx("Peter Name")
for each AE in AdrrEntries
    MsgBox AE.Name
next

请给我们看一下你的代码——如果有什么可以开始的话,给你一些帮助会容易得多。