当多个用户以相同的姓氏和姓氏存在时,从Outlook中找到了Exchange用户的电子邮件地址

问题描述 投票:0回答:1
我通常使用此处建议的功能(vba-excel如何从Outlook

中找到Exchange用户的电子邮件地址),但是在我们公司中,存在许多不符合的用户 ,对于那些,第一个和第二个名字是相同的,但是(当然)他们有不同的电子邮件,用户ID等...

当我解决我的名字(例如“ Pinco Pallino”)时,如果确实存在多个“ Pinco Pallino”,Myrecipient.resolved return false(没有一个结果)

您可以建议我一种(让我说)作为一个(或全部)所找到的用户的funztion的结果吗? thanks

从链接中编码:

Function lookupEmail(name) lookupEmail = "" Dim objApp As New Outlook.Application Dim myNamespace As Outlook.Namespace Dim myRecipient As Outlook.recipient Set myNamespace = objApp.GetNamespace("MAPI") Set myRecipient = myNamespace.CreateRecipient(name) myRecipient.Resolve If myRecipient.Resolved Then lookupEmail = GetSMTPAdress(myRecipient) End If End Function Function GetSMTPAdress(recipient As Outlook.recipient) Dim pa As Outlook.PropertyAccessor Const PR_SMTP_ADDRESS As String = _ "http://schemas.microsoft.com/mapi/proptag/0x39FE001E" Set pa = recipient.PropertyAccessor GetSMTPAdress = pa.GetProperty(PR_SMTP_ADDRESS) End Function

outlook对象模型不会让您搜索多个匹配:它可以找到唯一的匹配项,或者如果没有找到匹配项,或者存在一个以上的行进,则返回错误。
在扩展的MAPI级别(仅C ++或Delphi)中,您可以在特定搜索容器的内容表(例如GAL)的内容表上创建
PR_ANR
excel vba outlook
1个回答
0
投票
PR_ANR

限制。如果发现多个匹配项,它将显示一个带有列表的对话框。如果有一个匹配项,则将其返回并停止搜索,否则它将继续到搜索路径中的下一个容器。

如果使用

REDEMPTION

(我是它的作者 - 任何语言)是一种选项,它将展示
RDOADDRESSBOOK
.INGandrdoAddresslist
.

ResolveNameEx

,它返回了匹配列表。 在vb脚本: ResolveNameEx

	
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.