如何在Excel VBA中从GetSelectName对话框中的选择返回数据?
我编写了一些VBA代码,用于从单个选定的Outlook联系人返回信息。它返回了错误的人的信息 它似乎选择了一个按字母顺序(名字)相对接近的联系人,但从来都不是正确的联系人 选择列表中的第一个人将始终返回最后一个人的信息。我让其他人运行它,他们得到同样的问题。Outlook、Office和Excel对象库是最新的(16.0)如何在Excel VBA中从GetSelectName对话框中的选择返回数据?,excel,vba,outlook,Excel,Vba,Outlook,我编写了一些VBA代码,用于从单个选定的Outlook联系人返回信息。它返回了错误的人的信息 它似乎选择了一个按字母顺序(名字)相对接近的联系人,但从来都不是正确的联系人 选择列表中的第一个人将始终返回最后一个人的信息。我让其他人运行它,他们得到同样的问题。Outlook、Office和Excel对象库是最新的(16.0) 将outApp设置为Outlook.Application Dim outDialog作为SelectNames对话框 Dim myAddrList作为地址列表 Dim my
将outApp设置为Outlook.Application
Dim outDialog作为SelectNames对话框
Dim myAddrList作为地址列表
Dim myAddrEntry作为AddressEntry
将别名设置为字符串
Set-outApp=GetObject(,“Outlook.Application”)
Set-outDialog=outApp.Session.GetSelectNamesDialog
设置myAddrList=outApp.GetNamespace(“MAPI”).AddressList(“联系人”)
带输出对话框
.AllowMultipleSelection=False
.InitialAddressList=myAddrList
.ShowOnlyInitialAddressList=True
如果是,那么显示
AliasName=outDialog.Recipients.Item(1).Name
设置myAddrEntry=myAddrList.AddressEntries(别名)
范围(“F3”).Value=myAddrEntry.GetContact.FirstName
范围(“G3”)。值=myAddrEntry.GetContact.LastName
范围(“M3”)。值=myAddrEntry.GetContact.Email1地址
范围(“H3”)。值=myAddrEntry.GetContact.CompanyName
范围(“I3”).Value=myAddrEntry.GetContact.BusinessAddressStreet
范围(“J3”).Value=myAddrEntry.GetContact.BusinessAddressCity
范围(“K3”).Value=myAddrEntry.GetContact.BusinessAddressState
范围(“L3”).Value=myAddrEntry.GetContact.BusinessAddressPostalCode
如果结束
以
设置应用程序=无
设置对话框=无
设置myAddrList=Nothing
设置myAddrEntry=Nothing
此Outlook代码演示如何将对话框选择连接到“联系人”
选项显式
私有子地址()
Dim outDialog作为SelectNames对话框
Dim myAddrList作为地址列表
Dim myAddrEntry作为AddressEntry
将别名设置为字符串
Set-outDialog=Session.GetSelectNamesDialog
设置myAddrList=Session.AddressList(“联系人”)
带输出对话框
.AllowMultipleSelection=False
.InitialAddressList=myAddrList
.ShowOnlyInitialAddressList=True
如果是,那么显示
别名=.Recipients(1).name
调试。打印“别名………..”&别名
对于myAddrList.AddressEntries中的每个myAddrEntry
如果myAddrEntry.name=别名,则
和我的公寓
调试.打印.地址………..:“&.地址
Debug.Print“.GetContact.FirstName:&.GetContact.FirstName
以
退出
如果结束
下一个myAddrEntry
如果结束
以
端接头
此Outlook代码演示如何将对话框选择连接到“联系人”
选项显式
私有子地址()
Dim outDialog作为SelectNames对话框
Dim myAddrList作为地址列表
Dim myAddrEntry作为AddressEntry
将别名设置为字符串
Set-outDialog=Session.GetSelectNamesDialog
设置myAddrList=Session.AddressList(“联系人”)
带输出对话框
.AllowMultipleSelection=False
.InitialAddressList=myAddrList
.ShowOnlyInitialAddressList=True
如果是,那么显示
别名=.Recipients(1).name
调试。打印“别名………..”&别名
对于myAddrList.AddressEntries中的每个myAddrEntry
如果myAddrEntry.name=别名,则
和我的公寓
调试.打印.地址………..:“&.地址
Debug.Print“.GetContact.FirstName:&.GetContact.FirstName
以
退出
如果结束
下一个myAddrEntry
如果结束
以
端接头
AddressEntry.ID
将返回联系人的唯一ID。你不能用它吗?我试过用它,但没用。这一次我在游泳池的最深处游泳-我以前从未在Excel之外打过电话获取数据,并尝试边走边学习。AddressEntry.ID
将返回联系人的唯一ID。你不能用它吗?我试过用它,但没用。这一次,我在游泳池的最深处游泳——我以前从未打电话到Excel外部获取数据,并尝试边走边学习。